summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2026-05-03 02:30:34 -0400
committerGlenn Smith <glenn@vector35.com>2026-05-20 17:10:35 -0400
commit23f619a047ff754eafb84a6ec5f666bbe9e47711 (patch)
tree9d128bc11c50c2a2bb9fbaa5ce291062afa9b979 /python
parent06611c17ae5ee5936889ff029cac042fdba8a0c5 (diff)
Sort switch blocks in graph view by case number
Diffstat (limited to 'python')
-rw-r--r--python/basicblock.py8
-rw-r--r--python/function.py8
2 files changed, 16 insertions, 0 deletions
diff --git a/python/basicblock.py b/python/basicblock.py
index fc8b89e1..69f9f996 100644
--- a/python/basicblock.py
+++ b/python/basicblock.py
@@ -705,6 +705,14 @@ class BasicBlock:
return self.function.get_block_annotations(self.start, self.arch)
@property
+ def sort_hint(self) -> Optional[int]:
+ """Graph edge sorting hint for this block (read-only)"""
+ if self.function is None:
+ raise ValueError("Attempting to call BasicBlock.sort_hint when Function is None")
+
+ return self.function.get_block_sort_hint(self.start, self.arch)
+
+ @property
def disassembly_text(self) -> List['_function.DisassemblyTextLine']:
"""
``disassembly_text`` property which returns a list of function.DisassemblyTextLine objects for the current basic block.
diff --git a/python/function.py b/python/function.py
index 9f5e89bb..8c9eaf1d 100644
--- a/python/function.py
+++ b/python/function.py
@@ -2437,6 +2437,14 @@ class Function:
finally:
core.BNFreeInstructionTextLines(lines, count.value)
+ def get_block_sort_hint(self, addr: int, arch: Optional['architecture.Architecture'] = None) -> Optional[int]:
+ if arch is None:
+ arch = self.arch
+ result = ctypes.c_int64()
+ if not core.BNGetFunctionBlockSortHint(self.handle, arch.handle, addr, ctypes.byref(result)):
+ return None
+ return result.value
+
def set_auto_type(self, value: StringOrType) -> None:
if isinstance(value, str):
(value, _) = self.view.parse_type_string(value)