Exemple #1
0
    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()
Exemple #2
0
 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()