From ab82f6fa2a79bb5dab8d7e9bc1b55d6cf0d7ad4b Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Thu, 17 Feb 2022 13:57:00 -0500 Subject: Fix some minor correctness issues with function.py --- python/function.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'python/function.py') diff --git a/python/function.py b/python/function.py index a9995b0f..fbaa2b96 100644 --- a/python/function.py +++ b/python/function.py @@ -895,6 +895,11 @@ class Function: """Function mapped medium level IL (read-only)""" return mediumlevelil.MediumLevelILFunction(self.arch, core.BNGetFunctionMappedMediumLevelIL(self.handle), self) + @property + def mapped_medium_level_il(self) -> 'mediumlevelil.MediumLevelILFunction': + """Function mapped medium level IL (read-only)""" + return self.mmlil + @property def mmlil_if_available(self) -> Optional['mediumlevelil.MediumLevelILFunction']: """Function mapped medium level IL, or None if not loaded (read-only)""" @@ -1066,7 +1071,7 @@ class Function: type_conf.confidence = 0 elif isinstance(value, str): (value, _) = self.view.parse_type_string(value) - type_conf.type = value + type_conf.type = value.handle type_conf.confidence = core.max_confidence else: type_conf.type = value.handle @@ -1078,12 +1083,13 @@ class Function: """Registers that are used for the return value""" result = core.BNGetFunctionReturnRegisters(self.handle) assert result is not None, "core.BNGetFunctionReturnRegisters returned None" - reg_set = [] - for i in range(0, result.count): - reg_set.append(self.arch.get_reg_name(result.regs[i])) - regs = types.RegisterSet(reg_set, confidence=result.confidence) - core.BNFreeRegisterSet(result) - return regs + try: + reg_set = [] + for i in range(result.count): + reg_set.append(self.arch.get_reg_name(result.regs[i])) + return types.RegisterSet(reg_set, confidence=result.confidence) + finally: + core.BNFreeRegisterSet(result) @return_regs.setter def return_regs(self, value: Union['types.RegisterSet', List['architecture.RegisterType']]) -> None: # type: ignore -- cgit v1.3.1