Commit 6b96ecb0 authored by Raymond Hettinger's avatar Raymond Hettinger

Improve clear() method. Keeps key/value refcnts >= 1 until final dict.clear()...

Improve clear() method.  Keeps key/value refcnts >= 1 until final dict.clear() so that decrefs to zero won't trigger arbitrary code .  Also runs a bit faster.
parent 93232660
......@@ -107,8 +107,14 @@ class OrderedDict(dict, MutableMapping):
def clear(self):
'od.clear() -> None. Remove all items from od.'
for k in dict.keys(self):
del self[k]
try:
for node in self.__map.itervalues():
del node[:]
self.__root[:] = [self.__root, self.__root, None]
self.__map.clear()
except AttributeError:
pass
dict.clear(self)
setdefault = MutableMapping.setdefault
update = MutableMapping.update
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment