[pypy-svn] r79974 - in pypy/trunk: lib_pypy/_ctypes pypy/module/test_lib_pypy/ctypes_tests
arigo at codespeak.net
arigo at codespeak.net
Sat Dec 11 14:47:19 CET 2010
Author: arigo
Date: Sat Dec 11 14:47:17 2010
New Revision: 79974
Modified:
pypy/trunk/lib_pypy/_ctypes/primitive.py
pypy/trunk/pypy/module/test_lib_pypy/ctypes_tests/test_cast.py
Log:
Merge from branch/ctypes-fix:
Fix _ensure_objects() on class _SimpleCData. Always returns
self._objects, but asserts that it is None for all _SimpleCDatas except
z, Z and P.
Modified: pypy/trunk/lib_pypy/_ctypes/primitive.py
==============================================================================
--- pypy/trunk/lib_pypy/_ctypes/primitive.py (original)
+++ pypy/trunk/lib_pypy/_ctypes/primitive.py Sat Dec 11 14:47:17 2010
@@ -295,9 +295,9 @@
self.value = value
def _ensure_objects(self):
- if self._type_ in 'zZ':
- return self._objects
- return None
+ if self._type_ not in 'zZP':
+ assert self._objects is None
+ return self._objects
def _getvalue(self):
return self._buffer[0]
Modified: pypy/trunk/pypy/module/test_lib_pypy/ctypes_tests/test_cast.py
==============================================================================
--- pypy/trunk/pypy/module/test_lib_pypy/ctypes_tests/test_cast.py (original)
+++ pypy/trunk/pypy/module/test_lib_pypy/ctypes_tests/test_cast.py Sat Dec 11 14:47:17 2010
@@ -82,8 +82,11 @@
def test_cast_functype(self):
# make sure we can cast function type
my_sqrt = lib.my_sqrt
+ saved_objects = my_sqrt._objects.copy()
sqrt = cast(cast(my_sqrt, c_void_p), CFUNCTYPE(c_double, c_double))
assert sqrt(4.0) == 2.0
assert not cast(0, CFUNCTYPE(c_int))
-
-
+ #
+ assert sqrt._objects is my_sqrt._objects # on CPython too
+ my_sqrt._objects.clear()
+ my_sqrt._objects.update(saved_objects)
More information about the Pypy-commit
mailing list