SF patch 564549 (Erik Andersén).
The WeakKeyDictionary constructor didn't work when a dict arg was
given. Fixed by moving a line. Also adding a unit test.
Bugfix candidate.
diff --git a/Lib/weakref.py b/Lib/weakref.py
index 70d36fa..a1fa4e8 100644
--- a/Lib/weakref.py
+++ b/Lib/weakref.py
@@ -144,12 +144,12 @@
def __init__(self, dict=None):
self.data = {}
- if dict is not None: self.update(dict)
def remove(k, selfref=ref(self)):
self = selfref()
if self is not None:
del self.data[k]
self._remove = remove
+ if dict is not None: self.update(dict)
def __delitem__(self, key):
for ref in self.data.iterkeys():