summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorRyan Snyder <ryan@vector35.com>2025-07-03 01:48:11 -0400
committerRyan Snyder <ryan@vector35.com>2025-07-03 04:30:58 -0400
commite96a7a078a9909fc1212861c9669e6af0b034e46 (patch)
tree412f072f118f7f784e8500f8bb46dfad0354bc82 /python
parent3bfeb0e19d97c71022bb5c50c2a21e129f675e1b (diff)
api: indirect branch inlining support
Diffstat (limited to 'python')
-rw-r--r--python/function.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/python/function.py b/python/function.py
index f290bebd..37bd3396 100644
--- a/python/function.py
+++ b/python/function.py
@@ -1277,18 +1277,22 @@ class Function:
return result
@property
- def unresolved_indirect_branches(self) -> List[int]:
+ def unresolved_indirect_branches(self) -> List[Tuple['architecture.Architecture', int]]:
"""List of unresolved indirect branches (read-only)"""
count = ctypes.c_ulonglong()
- addrs = core.BNGetUnresolvedIndirectBranches(self.handle, count)
- assert addrs is not None, "core.BNGetUnresolvedIndirectBranches returned None"
+ addresses = core.BNGetUnresolvedIndirectBranches(self.handle, count)
try:
+ assert addresses is not None, "core.BNGetUnresolvedIndirectBranches returned None"
result = []
- for i in range(0, count.value):
- result.append(addrs[i])
+ for i in range(count.value):
+ result.append((
+ architecture.CoreArchitecture._from_cache(addresses[i].arch),
+ addresses[i].address
+ ))
return result
finally:
- core.BNFreeAddressList(addrs)
+ if addresses is not None:
+ core.BNFreeArchitectureAndAddressList(addresses)
@property
def has_unresolved_indirect_branches(self) -> bool: