[Python-checkins] r59478 - in python/trunk: Lib/test/test_deque.py Misc/NEWS Modules/_collectionsmodule.c

raymond.hettinger python-checkins at python.org
Thu Dec 13 01:08:38 CET 2007


Author: raymond.hettinger
Date: Thu Dec 13 01:08:37 2007
New Revision: 59478

Modified:
   python/trunk/Lib/test/test_deque.py
   python/trunk/Misc/NEWS
   python/trunk/Modules/_collectionsmodule.c
Log:
Fix bug 1604. deque.__init__() did not clear existing contents like list.__init__. Not a backport candidate.

Modified: python/trunk/Lib/test/test_deque.py
==============================================================================
--- python/trunk/Lib/test/test_deque.py	(original)
+++ python/trunk/Lib/test/test_deque.py	Thu Dec 13 01:08:37 2007
@@ -29,8 +29,8 @@
 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 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)):

Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS	(original)
+++ python/trunk/Misc/NEWS	Thu Dec 13 01:08:37 2007
@@ -881,6 +881,10 @@
 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.
 

Modified: python/trunk/Modules/_collectionsmodule.c
==============================================================================
--- python/trunk/Modules/_collectionsmodule.c	(original)
+++ python/trunk/Modules/_collectionsmodule.c	Thu Dec 13 01:08:37 2007
@@ -843,6 +843,7 @@
 		}
 	}
 	deque->maxlen = maxlen;
+	deque_clear(deque);
 	if (iterable != NULL) {
 		PyObject *rv = deque_extend(deque, iterable);
 		if (rv == NULL)


More information about the Python-checkins mailing list