diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/mediumlevelil.py | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/python/mediumlevelil.py b/python/mediumlevelil.py index 44e94937..e7b852c2 100644 --- a/python/mediumlevelil.py +++ b/python/mediumlevelil.py @@ -2895,22 +2895,15 @@ class MediumLevelILFunction: def get_var_uses(self, var:'variable.Variable') -> List[MediumLevelILInstruction]: count = ctypes.c_ulonglong() var_data = var.to_BNVariable() - instrs = core.BNGetMediumLevelILVariableDefinitions(self.handle, var_data, count) - assert instrs is not None, "core.BNGetMediumLevelILVariableDefinitions returned None" - result = [] - for i in range(0, count.value): - result.append(self[instrs[i]]) - core.BNFreeILInstructionList(instrs) - return result - - count = ctypes.c_ulonglong() - var_data = var.to_BNVariable() instrs = core.BNGetMediumLevelILVariableUses(self.handle, var_data, count) - result = [] - for i in range(0, count.value): - result.append(self[instrs[i]]) - core.BNFreeILInstructionList(instrs) - return result + assert instrs is not None, "core.BNGetMediumLevelILVariableUses returned None" + try: + result = [] + for i in range(0, count.value): + result.append(self[instrs[i]]) + return result + finally: + core.BNFreeILInstructionList(instrs) def get_ssa_var_value(self, ssa_var:SSAVariable) -> 'variable.RegisterValue': var_data = ssa_var.var.to_BNVariable() |
