[pypy-svn] pypy jitypes2: Some fixes for Windows
amauryfa
commits-noreply at bitbucket.org
Fri Jan 7 20:28:28 CET 2011
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: jitypes2
Changeset: r40471:949f18df4eb2
Date: 2011-01-07 20:26 +0100
http://bitbucket.org/pypy/pypy/changeset/949f18df4eb2/
Log: Some fixes for Windows
diff --git a/pypy/module/_ffi/interp_ffi.py b/pypy/module/_ffi/interp_ffi.py
--- a/pypy/module/_ffi/interp_ffi.py
+++ b/pypy/module/_ffi/interp_ffi.py
@@ -293,3 +293,10 @@
)
# ========================================================================
+
+def get_libc(space):
+ from pypy.rlib.clibffi import get_libc_name
+ try:
+ return space.wrap(W_CDLL(space, get_libc_name()))
+ except OSError, e:
+ raise wrap_oserror(space, e)
diff --git a/lib_pypy/_ctypes/function.py b/lib_pypy/_ctypes/function.py
--- a/lib_pypy/_ctypes/function.py
+++ b/lib_pypy/_ctypes/function.py
@@ -301,8 +301,10 @@
for i in range(33):
mangled_name = "_%s@%d" % (self.name, i*4)
try:
- return cdll.ptr(mangled_name, argshapes, resshape,
- self._flags_)
+ return cdll.getfunc(mangled_name,
+ ffi_argtypes, ffi_restype,
+ # XXX self._flags_
+ )
except AttributeError:
pass
raise
diff --git a/lib_pypy/ctypes_support.py b/lib_pypy/ctypes_support.py
--- a/lib_pypy/ctypes_support.py
+++ b/lib_pypy/ctypes_support.py
@@ -10,8 +10,8 @@
# __________ the standard C library __________
if sys.platform == 'win32':
- import _rawffi
- standard_c_lib = ctypes.CDLL('msvcrt', handle=_rawffi.get_libc())
+ import _ffi
+ standard_c_lib = ctypes.CDLL('msvcrt', handle=_ffi.get_libc())
else:
standard_c_lib = ctypes.CDLL(ctypes.util.find_library('c'))
diff --git a/pypy/module/_ffi/__init__.py b/pypy/module/_ffi/__init__.py
--- a/pypy/module/_ffi/__init__.py
+++ b/pypy/module/_ffi/__init__.py
@@ -6,7 +6,8 @@
interpleveldefs = {
'CDLL': 'interp_ffi.W_CDLL',
'types': 'interp_ffi.W_types',
- 'FuncPtr': 'interp_ffi.W_FuncPtr'
+ 'FuncPtr': 'interp_ffi.W_FuncPtr',
+ 'get_libc':'interp_ffi.get_libc',
}
appleveldefs = {}
More information about the Pypy-commit
mailing list