this time and call gc.collect(), since there is some garbage.
The original code didn't really leak (if gc.collect() was called).
-# Taken from Lib/ctypes/test/test_keeprefs.py
+# Taken from Lib/ctypes/test/test_keeprefs.py, PointerToStructure.test().
# When this leak is fixed, remember to remove from Misc/build.sh LEAKY_TESTS.
-from ctypes import Structure, c_int
+from ctypes import Structure, c_int, POINTER
+import gc
-def leak():
+def leak_inner():
class POINT(Structure):
_fields_ = [("x", c_int)]
class RECT(Structure):
- _fields_ = [("ul", POINT)]
+ _fields_ = [("a", POINTER(POINT))]
+
+def leak():
+ leak_inner()
+ gc.collect()