From a2af05a0d3f0da06b8d432f52efa3ecf29038532 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 9 Sep 2019 16:55:58 +0200 Subject: bpo-38006: Avoid closure in weakref.WeakValueDictionary (GH-15641) weakref.WeakValueDictionary defines a local remove() function used as callback for weak references. This function was created with a closure. Modify the implementation to avoid the closure. --- Lib/test/test_weakref.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'Lib/test/test_weakref.py') diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py index 41f78e7e83..e14df9ea08 100644 --- a/Lib/test/test_weakref.py +++ b/Lib/test/test_weakref.py @@ -1792,6 +1792,11 @@ class MappingTestCase(TestBase): # copying should not result in a crash. self.check_threaded_weak_dict_copy(weakref.WeakValueDictionary, True) + @support.cpython_only + def test_remove_closure(self): + d = weakref.WeakValueDictionary() + self.assertIsNone(d._remove.__closure__) + from test import mapping_tests -- cgit v1.2.1