Fix for SF bug ##497426: can't deepcopy recursive new objects
authorGuido van Rossum <guido@python.org>
Fri, 28 Dec 2001 21:39:03 +0000 (21:39 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 28 Dec 2001 21:39:03 +0000 (21:39 +0000)
deepcopy(), _reconstruct(): pass the memo to the other function, so
that recursive data structures built out of new-style objects may be
deeply copied correctly.

2.2.1 bugfix!

Lib/test/test_descr.py

index ea987f223c7198d1bc601b150ebf39c6ce10b9b8..dd95ddeb91e2ef9b153154ee1ade3188daf69f14 100644 (file)
@@ -2702,7 +2702,15 @@ def strops():
     vereq('%c' % 5, '\x05')
     vereq('%c' % '5', '5')
 
-
+def deepcopyrecursive():
+    if verbose: print "Testing deepcopy of recursive objects..."
+    class Node:
+        pass
+    a = Node()
+    b = Node()
+    a.b = b
+    b.a = a
+    z = deepcopy(a) # This blew up before
 
 
 def test_main():
@@ -2759,6 +2767,7 @@ def test_main():
     delhook()
     hashinherit()
     strops()
+    deepcopyrecursive()
     if verbose: print "All OK"
 
 if __name__ == "__main__":