def __call__(self, *args): """Make object callable. We redirect execution to idaapi.appcall()""" if self.ea is None: raise ValueError("Object not callable!") # convert arguments to a list arg_list = list(args) # Save appcall options and set new global options old_opt = Appcall__.get_appcall_options() Appcall__.set_appcall_options(self.options) # Do the Appcall (use the wrapped version) e_obj = None try: r = _ida_idd.appcall( self.ea, _ida_dbg.get_current_thread(), self.type, self.fields, arg_list) except Exception as e: e_obj = e # Restore appcall options Appcall__.set_appcall_options(old_opt) # Return or re-raise exception if e_obj: raise Exception(e_obj) return r
def __call__(self, *args): """ Make object callable. We redirect execution to idaapi.appcall() """ if self.ea is None: raise ValueError, "Object not callable!" # convert arguments to a list arg_list = list(args) # Save appcall options and set new global options old_opt = Appcall__.get_appcall_options() Appcall__.set_appcall_options(self.options) # Do the Appcall (use the wrapped version) e_obj = None try: r = _ida_idd.appcall( self.ea, _ida_dbg.get_current_thread(), self.type, self.fields, arg_list) except Exception as e: e_obj = e # Restore appcall options Appcall__.set_appcall_options(old_opt) # Return or re-raise exception if e_obj: raise Exception, e_obj return r
def __call__(self, *args): """Make object callable. We redirect execution to idaapi.appcall()""" if self.ea is None: raise ValueError("Object not callable!") # convert arguments to a list arg_list = list(args) # Save appcall options and set new global options old_opt = Appcall__.get_appcall_options() Appcall__.set_appcall_options(self.options) # Do the Appcall (use the wrapped version) try: return _ida_idd.appcall(self.ea, _ida_dbg.get_current_thread(), self.type, self.fields, arg_list) finally: # Restore appcall options Appcall__.set_appcall_options(old_opt)