ยปCore Development>Code coverage>Lib/test/crashers/borrowed_ref_2.py

Python code coverage for Lib/test/crashers/borrowed_ref_2.py

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