summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2003-06-14 07:10:06 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2003-06-14 07:10:06 (GMT)
commitba8f5ff76c8e0aa7767a9a7c59f25a2db95f5d57 (patch)
tree36e39c502c9580d8d466b28ddca87d82cdfc8f85 /Lib
parentc1aa8dceb74b82610df1dcd9f4a8215c3c1d6117 (diff)
downloadcpython-ba8f5ff76c8e0aa7767a9a7c59f25a2db95f5d57.zip
cpython-ba8f5ff76c8e0aa7767a9a7c59f25a2db95f5d57.tar.gz
cpython-ba8f5ff76c8e0aa7767a9a7c59f25a2db95f5d57.tar.bz2
Copy builtin functions as atomic. Fixes #746304. Will backport to 2.2.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/copy.py2
-rw-r--r--Lib/test/test_copy.py4
2 files changed, 4 insertions, 2 deletions
diff --git a/Lib/copy.py b/Lib/copy.py
index 02aa46b..31adfd3 100644
--- a/Lib/copy.py
+++ b/Lib/copy.py
@@ -120,6 +120,7 @@ except AttributeError:
d[types.TypeType] = _copy_atomic
d[types.XRangeType] = _copy_atomic
d[types.ClassType] = _copy_atomic
+d[types.BuiltinFunctionType] = _copy_atomic
def _copy_list(x):
return x[:]
@@ -233,6 +234,7 @@ except AttributeError:
d[types.TypeType] = _deepcopy_atomic
d[types.XRangeType] = _deepcopy_atomic
d[types.ClassType] = _deepcopy_atomic
+d[types.BuiltinFunctionType] = _deepcopy_atomic
def _deepcopy_list(x, memo):
y = []
diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py
index a53f988..3d44304 100644
--- a/Lib/test/test_copy.py
+++ b/Lib/test/test_copy.py
@@ -84,7 +84,7 @@ class TestCopy(unittest.TestCase):
pass
tests = [None, 42, 2L**100, 3.14, True, False, 1j,
"hello", u"hello\u1234", f.func_code,
- NewStyle, xrange(10), Classic]
+ NewStyle, xrange(10), Classic, max]
for x in tests:
self.assert_(copy.copy(x) is x, `x`)
@@ -257,7 +257,7 @@ class TestCopy(unittest.TestCase):
pass
tests = [None, 42, 2L**100, 3.14, True, False, 1j,
"hello", u"hello\u1234", f.func_code,
- NewStyle, xrange(10), Classic]
+ NewStyle, xrange(10), Classic, max]
for x in tests:
self.assert_(copy.deepcopy(x) is x, `x`)