14710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 24710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm# Taken from Lib/ctypes/test/test_keeprefs.py, PointerToStructure.test(). 34710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm# When this leak is fixed, remember to remove from Misc/build.sh LEAKY_TESTS. 44710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 54710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmfrom ctypes import Structure, c_int, POINTER 64710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmimport gc 74710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 84710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmdef leak_inner(): 94710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm class POINT(Structure): 104710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm _fields_ = [("x", c_int)] 114710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm class RECT(Structure): 124710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm _fields_ = [("a", POINTER(POINT))] 134710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm 144710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylmdef leak(): 154710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm leak_inner() 164710c53dcad1ebf3755f3efb9e80ac24bd72a9b2darylm gc.collect() 17