/Lib/test/crashers/borrowed_ref_1.py

http://unladen-swallow.googlecode.com/ · Python · 29 lines · 19 code · 6 blank · 4 comment · 1 complexity · 239d61737538e7ca4e82e68d11c09521 MD5 · raw file

  1. """
  2. _PyType_Lookup() returns a borrowed reference.
  3. This attacks the call in dictobject.c.
  4. """
  5. class A(object):
  6. pass
  7. class B(object):
  8. def __del__(self):
  9. print 'hi'
  10. del D.__missing__
  11. class D(dict):
  12. class __missing__:
  13. def __init__(self, *args):
  14. pass
  15. d = D()
  16. a = A()
  17. a.cycle = a
  18. a.other = B()
  19. del a
  20. prev = None
  21. while 1:
  22. d[5]
  23. prev = (prev,)