""" | |
_PyType_Lookup() returns a borrowed reference. | |
This attacks the call in dictobject.c. | |
""" | |
class A(object): | |
pass | |
class B(object): | |
def __del__(self): | |
print('hi') | |
del D.__missing__ | |
class D(dict): | |
class __missing__: | |
def __init__(self, *args): | |
pass | |
d = D() | |
a = A() | |
a.cycle = a | |
a.other = B() | |
del a | |
prev = None | |
while 1: | |
d[5] | |
prev = (prev,) |