From: Raymond Hettinger Date: Sun, 12 Sep 2010 02:11:45 +0000 (+0000) Subject: Issue #9825: Remove __del__() from OrderedDict. X-Git-Tag: v2.7.1rc1~305 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2039753a9ab9d41375ba17877e231e8d53e17749;p=thirdparty%2FPython%2Fcpython.git Issue #9825: Remove __del__() from OrderedDict. --- diff --git a/Lib/collections.py b/Lib/collections.py index 10c8903697cb..b0c67a1825c1 100644 --- a/Lib/collections.py +++ b/Lib/collections.py @@ -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 diff --git a/Misc/NEWS b/Misc/NEWS index b65e8609324b..a31d95aee814 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -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.