[pypy-svn] r77249 - in pypy/branch/fast-forward: lib_pypy/_ctypes pypy/module/_rawffi

afa at codespeak.net afa at codespeak.net
Tue Sep 21 19:30:27 CEST 2010


Author: afa
Date: Tue Sep 21 19:30:26 2010
New Revision: 77249

Modified:
   pypy/branch/fast-forward/lib_pypy/_ctypes/__init__.py
   pypy/branch/fast-forward/pypy/module/_rawffi/__init__.py
   pypy/branch/fast-forward/pypy/module/_rawffi/interp_rawffi.py
Log:
Export _ctypes.get_last_error, set_last_error (on Windows)


Modified: pypy/branch/fast-forward/lib_pypy/_ctypes/__init__.py
==============================================================================
--- pypy/branch/fast-forward/lib_pypy/_ctypes/__init__.py	(original)
+++ pypy/branch/fast-forward/lib_pypy/_ctypes/__init__.py	Tue Sep 21 19:30:26 2010
@@ -23,6 +23,9 @@
 from _rawffi import FUNCFLAG_USE_ERRNO, FUNCFLAG_USE_LASTERROR
 from _rawffi import get_errno, set_errno
 
+if _os.name in ("nt", "ce"):
+    from _rawffi import get_last_error, set_last_error
+
 __version__ = '1.1.0'
 #XXX platform dependant?
 RTLD_LOCAL = 0

Modified: pypy/branch/fast-forward/pypy/module/_rawffi/__init__.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_rawffi/__init__.py	(original)
+++ pypy/branch/fast-forward/pypy/module/_rawffi/__init__.py	Tue Sep 21 19:30:26 2010
@@ -6,6 +6,7 @@
 from pypy.module._rawffi.interp_rawffi import W_CDLL
 from pypy.rpython.lltypesystem import lltype, rffi
 from pypy.module._rawffi.tracker import Tracker
+import sys
 
 class Module(MixedModule):
 
@@ -29,6 +30,10 @@
         'set_errno'          : 'interp_rawffi.set_errno',
     }
 
+    if sys.platform == 'win32':
+        interpleveldefs['get_last_error'] = 'interp_rawffi.get_last_error'
+        interpleveldefs['set_last_error'] = 'interp_rawffi.set_last_error'
+
     appleveldefs = {
         'SegfaultException'  : 'error.SegfaultException',
     }

Modified: pypy/branch/fast-forward/pypy/module/_rawffi/interp_rawffi.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/_rawffi/interp_rawffi.py	(original)
+++ pypy/branch/fast-forward/pypy/module/_rawffi/interp_rawffi.py	Tue Sep 21 19:30:26 2010
@@ -516,3 +516,11 @@
 
 def set_errno(space, w_errno):
     rposix.set_errno(space.int_w(w_errno))
+
+def get_last_error(space):
+    from pypy.rlib.rwin32 import GetLastError
+    return space.wrap(GetLastError())
+
+def get_last_error(space, w_error):
+    from pypy.rlib.rwin32 import SetLastError
+    SetLastError(space.uint_w(w_error))



More information about the Pypy-commit mailing list