Issue #9825: Remove __del__() from OrderedDict.

This commit is contained in:
Raymond Hettinger 2010-09-12 02:11:45 +00:00
parent a1f74816f5
commit 2039753a9a
2 changed files with 7 additions and 3 deletions

View file

@ -173,9 +173,6 @@ class OrderedDict(dict, MutableMapping):
all(_imap(_eq, self.iteritems(), other.iteritems()))
return dict.__eq__(self, other)
def __del__(self):
self.clear() # eliminate cyclical references
################################################################################
### namedtuple

View file

@ -43,6 +43,13 @@ Core and Builtins
Library
-------
- Issue #9825: removed __del__ from the definition of collections.OrderedDict.
This prevents user-created self-referencing ordered dictionaries from
becoming permanently uncollectable GC garbage. The downside is that
removing __del__ means that the internal doubly-linked list has to wait for
GC collection rather than freeing memory immediately when the refcnt drops
to zero.
- Issue #9816: random.Random.jumpahead(n) did not produce a sufficiently
different internal state for small values of n. Fixed by salting the
value.