summaryrefslogtreecommitdiff
path: root/python/transform.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/transform.py')
-rw-r--r--python/transform.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/python/transform.py b/python/transform.py
index 3168982d..8e20d04c 100644
--- a/python/transform.py
+++ b/python/transform.py
@@ -37,11 +37,14 @@ class _TransformMetaClass(type):
count = ctypes.c_ulonglong()
xforms = core.BNGetTransformTypeList(count)
assert xforms is not None, "core.BNGetTransformTypeList returned None"
- try:
- for i in range(0, count.value):
- yield Transform(xforms[i])
- finally:
- core.BNFreeTransformTypeList(xforms)
+ result = []
+ for i in range(0, count.value):
+ ptr_addr = ctypes.cast(xforms[i], ctypes.c_void_p).value
+ handle = ctypes.cast(ptr_addr, type(xforms[i]))
+ result.append(Transform(handle))
+ core.BNFreeTransformTypeList(xforms)
+ for xform in result:
+ yield xform
def __getitem__(cls, name):
binaryninja._init_plugins()