1""" 2_PyType_Lookup() returns a borrowed reference. 3This attacks PyObject_GenericSetAttr(). 4 5NB. on my machine this crashes in 2.5 debug but not release. 6""" 7 8class A(object): 9 pass 10 11class B(object): 12 def __del__(self): 13 print "hi" 14 del C.d 15 16class D(object): 17 def __set__(self, obj, value): 18 self.hello = 42 19 20class C(object): 21 d = D() 22 23 def g(): 24 pass 25 26 27c = C() 28a = A() 29a.cycle = a 30a.other = B() 31 32lst = [None] * 1000000 33i = 0 34del a 35while 1: 36 c.d = 42 # segfaults in PyMethod_New(im_func=D.__set__, im_self=d) 37 lst[i] = c.g # consume the free list of instancemethod objects 38 i += 1 39