diff options
author | Raymond Hettinger <python@rcn.com> | 2007-12-13 00:08:37 +0000 |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2007-12-13 00:08:37 +0000 |
commit | adf9ffdfbe0fb00f5a47444c1dc53eb280d0bd0a (patch) | |
tree | d006a49e33601df220458519b651e15660108b26 | |
parent | 842c178442a9b9b855d9773dbe2e8ac3d6d79895 (diff) | |
download | cpython-git-adf9ffdfbe0fb00f5a47444c1dc53eb280d0bd0a.tar.gz |
Fix bug 1604. deque.__init__() did not clear existing contents like list.__init__. Not a backport candidate.
-rw-r--r-- | Lib/test/test_deque.py | 8 | ||||
-rw-r--r-- | Misc/NEWS | 4 | ||||
-rw-r--r-- | Modules/_collectionsmodule.c | 1 |
3 files changed, 9 insertions, 4 deletions
diff --git a/Lib/test/test_deque.py b/Lib/test/test_deque.py index aeb6d17d5f..e0ca746cd0 100644 --- a/Lib/test/test_deque.py +++ b/Lib/test/test_deque.py @@ -29,8 +29,8 @@ class MutateCmp: class TestBasic(unittest.TestCase): def test_basics(self): - d = deque(xrange(100)) - d.__init__(xrange(100, 200)) + d = deque(xrange(-5125, -5000)) + d.__init__(xrange(200)) for i in xrange(200, 400): d.append(i) for i in reversed(xrange(-200, 0)): @@ -451,8 +451,8 @@ class DequeWithBadIter(deque): class TestSubclass(unittest.TestCase): def test_basics(self): - d = Deque(xrange(100)) - d.__init__(xrange(100, 200)) + d = Deque(xrange(25)) + d.__init__(xrange(200)) for i in xrange(200, 400): d.append(i) for i in reversed(xrange(-200, 0)): @@ -881,6 +881,10 @@ Library Extension Modules ----------------- +- Bug #1604: collections.deque.__init__(iterable) now clears any prior contents + before adding elements from the iterable. This fix brings the behavior into + line with that for list.__init__(). + - Added wide char functions to msvcrt module: getwch, getwche, putwch and ungetwch. The functions accept or return unicode. diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c index e5c3218212..9efbc27ae0 100644 --- a/Modules/_collectionsmodule.c +++ b/Modules/_collectionsmodule.c @@ -843,6 +843,7 @@ deque_init(dequeobject *deque, PyObject *args, PyObject *kwdargs) } } deque->maxlen = maxlen; + deque_clear(deque); if (iterable != NULL) { PyObject *rv = deque_extend(deque, iterable); if (rv == NULL) |