[pypy-svn] r51007 - in pypy/dist/pypy/lib: _ctypes app_test/ctypes

fijal at codespeak.net fijal at codespeak.net
Fri Jan 25 01:43:10 CET 2008


Author: fijal
Date: Fri Jan 25 01:43:10 2008
New Revision: 51007

Modified:
   pypy/dist/pypy/lib/_ctypes/primitive.py
   pypy/dist/pypy/lib/app_test/ctypes/test_extra.py
Log:
A test and a fix.


Modified: pypy/dist/pypy/lib/_ctypes/primitive.py
==============================================================================
--- pypy/dist/pypy/lib/_ctypes/primitive.py	(original)
+++ pypy/dist/pypy/lib/_ctypes/primitive.py	Fri Jan 25 01:43:10 2008
@@ -117,9 +117,7 @@
                 if res is not None:
                     return res
                 if isinstance(value, Array):
-                    from ctypes import c_char, c_byte, c_wchar
-                    if type(value)._type_ in [c_char, c_byte, c_wchar]:
-                        return value
+                    return value
                 if isinstance(value, _Pointer):
                     return self.from_address(value._buffer.buffer)
                 return SimpleType.from_param(self, value)

Modified: pypy/dist/pypy/lib/app_test/ctypes/test_extra.py
==============================================================================
--- pypy/dist/pypy/lib/app_test/ctypes/test_extra.py	(original)
+++ pypy/dist/pypy/lib/app_test/ctypes/test_extra.py	Fri Jan 25 01:43:10 2008
@@ -222,3 +222,7 @@
     # T.argtypes and T.restype don't work, must use a dummy instance
     assert list(T().argtypes) == [c_ubyte]
     assert T().restype == c_int
+
+def test_from_param():
+    # other working cases of from_param
+    assert isinstance(c_void_p.from_param((c_int * 4)()), c_int*4)



More information about the Pypy-commit mailing list