From e40b46fdf8b76acb5ca2d0a062b0b8ac2ca99a16 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Thu, 17 Aug 2017 22:53:10 -0400 Subject: Work around limitations in ctypes --- python/callingconvention.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'python/callingconvention.py') diff --git a/python/callingconvention.py b/python/callingconvention.py index 609c71b0..bd8bbeee 100644 --- a/python/callingconvention.py +++ b/python/callingconvention.py @@ -267,25 +267,29 @@ class CallingConvention(object): count[0] = 0 return None - def _get_incoming_reg_value(self, ctxt, reg, func): + def _get_incoming_reg_value(self, ctxt, reg, func, result): try: func_obj = function.Function(binaryview.BinaryView(handle = core.BNGetFunctionData(func)), core.BNNewFunctionReference(func)) reg_name = self.arch.get_reg_name(reg) - return self.perform_get_incoming_reg_value(reg_name, func_obj)._to_api_object() + api_obj = self.perform_get_incoming_reg_value(reg_name, func_obj)._to_api_object() except: log.log_error(traceback.format_exc()) - return function.RegisterValue()._to_api_object() + api_obj = function.RegisterValue()._to_api_object() + result[0].state = api_obj.state + result[0].value = api_obj.value - def _get_incoming_flag_value(self, ctxt, reg, func): + def _get_incoming_flag_value(self, ctxt, reg, func, result): try: func_obj = function.Function(binaryview.BinaryView(handle = core.BNGetFunctionData(func)), core.BNNewFunctionReference(func)) reg_name = self.arch.get_reg_name(reg) - return self.perform_get_incoming_flag_value(reg_name, func_obj)._to_api_object() + api_obj = self.perform_get_incoming_flag_value(reg_name, func_obj)._to_api_object() except: log.log_error(traceback.format_exc()) - return function.RegisterValue()._to_api_object() + api_obj = function.RegisterValue()._to_api_object() + result[0].state = api_obj.state + result[0].value = api_obj.value def __repr__(self): return "" % (self.arch.name, self.name) -- cgit v1.3.1