summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/mediumlevelil.py23
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()