[Python-checkins] cpython (2.7): Backport early-out 91259f061cfb to reduce the cost of bb1a2944bcb6

raymond.hettinger python-checkins at python.org
Tue Oct 6 23:12:07 EDT 2015


https://hg.python.org/cpython/rev/37aee118e1a3
changeset: 98578:37aee118e1a3
branch: 2.7
parent: 98572:60c44a09c5fc
user: Raymond Hettinger <python at rcn.com>
date: Tue Oct 06 23:12:02 2015 -0400
summary:
 Backport early-out 91259f061cfb to reduce the cost of bb1a2944bcb6
files:
 Modules/_collectionsmodule.c | 6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -651,6 +651,9 @@
 Py_ssize_t n;
 PyObject *item;
 
+ if (Py_SIZE(deque) == 0)
+ return;
+
 /* During the process of clearing a deque, decrefs can cause the
 deque to mutate. To avoid fatal confusion, we have to make the
 deque empty before clearing the blocks and never refer to
@@ -1083,7 +1086,8 @@
 }
 }
 deque->maxlen = maxlen;
- deque_clear(deque);
+ if (Py_SIZE(deque) > 0)
+ deque_clear(deque);
 if (iterable != NULL) {
 PyObject *rv = deque_extend(deque, iterable);
 if (rv == NULL)
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /