def _call_funcptr(self, funcptr, *newargs): if self._flags_ & _rawffi.FUNCFLAG_USE_ERRNO: tmp = _rawffi.get_errno() _rawffi.set_errno(get_errno()) set_errno(tmp) if self._flags_ & _rawffi.FUNCFLAG_USE_LASTERROR: tmp = _rawffi.get_last_error() _rawffi.set_last_error(get_last_error()) set_last_error(tmp) try: result = funcptr(*newargs) finally: if self._flags_ & _rawffi.FUNCFLAG_USE_ERRNO: tmp = _rawffi.get_errno() _rawffi.set_errno(get_errno()) set_errno(tmp) if self._flags_ & _rawffi.FUNCFLAG_USE_LASTERROR: tmp = _rawffi.get_last_error() _rawffi.set_last_error(get_last_error()) set_last_error(tmp) # try: return self._build_result(self._restype_, result) finally: funcptr.free_temp_buffers()
def _call_funcptr(self, funcptr, *newargs): if self._flags_ & _rawffi.FUNCFLAG_USE_ERRNO: tmp = _rawffi.get_errno() _rawffi.set_errno(get_errno()) set_errno(tmp) if self._flags_ & _rawffi.FUNCFLAG_USE_LASTERROR: tmp = _rawffi.get_last_error() _rawffi.set_last_error(get_last_error()) set_last_error(tmp) try: result = funcptr(*newargs) finally: if self._flags_ & _rawffi.FUNCFLAG_USE_ERRNO: tmp = _rawffi.get_errno() _rawffi.set_errno(get_errno()) set_errno(tmp) if self._flags_ & _rawffi.FUNCFLAG_USE_LASTERROR: tmp = _rawffi.get_last_error() _rawffi.set_last_error(get_last_error()) set_last_error(tmp) # try: return self._build_result(self._restype_, result) finally: funcptr.free_temp_buffers()