"""

_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,)

