[Python-checkins] r45317 - in python/trunk: Lib/ctypes/test/test_pointers.py Modules/_ctypes/_ctypes.c

thomas.heller python-checkins at python.org
Wed Apr 12 21:07:36 CEST 2006


Author: thomas.heller
Date: Wed Apr 12 21:07:36 2006
New Revision: 45317

Modified:
   python/trunk/Lib/ctypes/test/test_pointers.py
   python/trunk/Modules/_ctypes/_ctypes.c
Log:
Fix for a bug found by Armin Rigo, plus test.
https://sourceforge.net/tracker/?func=detail&atid=532154&aid=1467852&group_id=71702

Modified: python/trunk/Lib/ctypes/test/test_pointers.py
==============================================================================
--- python/trunk/Lib/ctypes/test/test_pointers.py	(original)
+++ python/trunk/Lib/ctypes/test/test_pointers.py	Wed Apr 12 21:07:36 2006
@@ -166,6 +166,18 @@
         result = func( byref(argc), argv )
         assert result == 'world', result
 
+    def test_bug_1467852(self):
+        # http://sourceforge.net/tracker/?func=detail&atid=532154&aid=1467852&group_id=71702
+        x = c_int(5)
+        dummy = []
+        for i in range(32000):
+            dummy.append(c_int(i))
+        y = c_int(6)
+        p = pointer(x)
+        pp = pointer(p)
+        q = pointer(y)
+        pp[0] = q         # <==
+        self.failUnlessEqual(p[0], 6)
 
 if __name__ == '__main__':
     unittest.main()

Modified: python/trunk/Modules/_ctypes/_ctypes.c
==============================================================================
--- python/trunk/Modules/_ctypes/_ctypes.c	(original)
+++ python/trunk/Modules/_ctypes/_ctypes.c	Wed Apr 12 21:07:36 2006
@@ -548,7 +548,7 @@
 		return NULL;
 	stgdict->size = sizeof(void *);
 	stgdict->align = getentry("P")->pffi_type->alignment;
-	stgdict->length = 2;
+	stgdict->length = 1;
 	stgdict->ffi_type = ffi_type_pointer;
 
 	proto = PyDict_GetItemString(typedict, "_type_"); /* Borrowed ref */


More information about the Python-checkins mailing list