[pypy-svn] r61761 - in pypy/trunk/pypy: lib/_ctypes module/_rawffi

afa at codespeak.net afa at codespeak.net
Thu Feb 12 00:03:15 CET 2009


Author: afa
Date: Thu Feb 12 00:03:14 2009
New Revision: 61761

Modified:
   pypy/trunk/pypy/lib/_ctypes/primitive.py
   pypy/trunk/pypy/module/_rawffi/interp_rawffi.py
Log:
On windows, add the 'X' (BSTR) and 'v' (vBOOL) primitive types.
Now "import ctype.wintypes" works


Modified: pypy/trunk/pypy/lib/_ctypes/primitive.py
==============================================================================
--- pypy/trunk/pypy/lib/_ctypes/primitive.py	(original)
+++ pypy/trunk/pypy/lib/_ctypes/primitive.py	Thu Feb 12 00:03:14 2009
@@ -1,5 +1,6 @@
 import _rawffi
 import weakref
+import sys
 
 SIMPLE_TYPE_CHARS = "cbBhHiIlLdfuzZqQPXOv"
 
@@ -32,7 +33,11 @@
         'z': None,
         'Z': None,
 }
- 
+
+if sys.platform == 'win32':
+    TP_TO_DEFAULT['X'] = NULL
+    TP_TO_DEFAULT['v'] = 0
+
 DEFAULT_VALUE = object()
 
 class GlobalPyobjContainer(object):

Modified: pypy/trunk/pypy/module/_rawffi/interp_rawffi.py
==============================================================================
--- pypy/trunk/pypy/module/_rawffi/interp_rawffi.py	(original)
+++ pypy/trunk/pypy/module/_rawffi/interp_rawffi.py	Thu Feb 12 00:03:14 2009
@@ -42,6 +42,11 @@
 }
 TYPEMAP_PTR_LETTERS = "POszZ"
 
+if _MS_WINDOWS:
+    TYPEMAP['X'] = ffi_type_pointer
+    TYPEMAP['v'] = ffi_type_sshort
+    TYPEMAP_PTR_LETTERS += 'X'
+
 def size_alignment(ffi_type):
     return intmask(ffi_type.c_size), intmask(ffi_type.c_alignment)
 



More information about the Pypy-commit mailing list