summaryrefslogtreecommitdiff
path: root/python/architecture.py
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2021-08-24 16:27:31 -0400
committerPeter LaFosse <peter@vector35.com>2021-09-06 11:46:38 -0400
commitc7e16919257957ec568228ded9ebde7724f3b396 (patch)
tree5d03759657e8d60690c6dd92c07f2a0f180547fb /python/architecture.py
parentaafd0ec4e21bfe8a5cd8ef9d61e65fbf57d86a81 (diff)
Fix some type check errors in debuginfo.py
Add try finally blocks for deallocation
Diffstat (limited to 'python/architecture.py')
-rw-r--r--python/architecture.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/python/architecture.py b/python/architecture.py
index f77778bc..46f21f88 100644
--- a/python/architecture.py
+++ b/python/architecture.py
@@ -499,9 +499,11 @@ class Architecture(metaclass=_ArchitectureMetaClass):
regs = core.BNGetFullWidthArchitectureRegisters(self.handle, count)
assert regs is not None, "core.BNGetFullWidthArchitectureRegisters returned None"
result = []
- for i in range(0, count.value):
- result.append(core.BNGetArchitectureRegisterName(self.handle, regs[i]))
- core.BNFreeRegisterList(regs)
+ try:
+ for i in range(0, count.value):
+ result.append(core.BNGetArchitectureRegisterName(self.handle, regs[i]))
+ finally:
+ core.BNFreeRegisterList(regs)
return result
@property
@@ -511,10 +513,12 @@ class Architecture(metaclass=_ArchitectureMetaClass):
cc = core.BNGetArchitectureCallingConventions(self.handle, count)
assert cc is not None, "core.BNGetArchitectureCallingConventions returned None"
result = {}
- for i in range(0, count.value):
- obj = callingconvention.CallingConvention(handle=core.BNNewCallingConventionReference(cc[i]))
- result[obj.name] = obj
- core.BNFreeCallingConventionList(cc, count)
+ try:
+ for i in range(0, count.value):
+ obj = callingconvention.CallingConvention(handle=core.BNNewCallingConventionReference(cc[i]))
+ result[obj.name] = obj
+ finally:
+ core.BNFreeCallingConventionList(cc, count)
return result
@property