diff options
| author | Rusty Wagner <rusty@vector35.com> | 2017-08-17 22:53:10 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2017-08-17 22:53:10 -0400 |
| commit | e40b46fdf8b76acb5ca2d0a062b0b8ac2ca99a16 (patch) | |
| tree | 6f77f76307a8f08ee1e137aba2d3093e9f77c70c /python/callingconvention.py | |
| parent | 78d90c30df96364cdc8dde1954be7341531cfe07 (diff) | |
Work around limitations in ctypes
Diffstat (limited to 'python/callingconvention.py')
| -rw-r--r-- | python/callingconvention.py | 16 |
1 files changed, 10 insertions, 6 deletions
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 "<calling convention: %s %s>" % (self.arch.name, self.name) |
