/Lib/test/crashers/borrowed_ref_2.py
http://unladen-swallow.googlecode.com/ · Python · 38 lines · 24 code · 8 blank · 6 comment · 1 complexity · 488e09f4a8f771ea4b0fba4c1db7da6e MD5 · raw file
- """
- _PyType_Lookup() returns a borrowed reference.
- This attacks PyObject_GenericSetAttr().
- NB. on my machine this crashes in 2.5 debug but not release.
- """
- class A(object):
- pass
- class B(object):
- def __del__(self):
- print "hi"
- del C.d
- class D(object):
- def __set__(self, obj, value):
- self.hello = 42
- class C(object):
- d = D()
- def g():
- pass
- c = C()
- a = A()
- a.cycle = a
- a.other = B()
- lst = [None] * 1000000
- i = 0
- del a
- while 1:
- c.d = 42 # segfaults in PyMethod_New(im_func=D.__set__, im_self=d)
- lst[i] = c.g # consume the free list of instancemethod objects
- i += 1