[Python-checkins] cpython: For safety, wait to decref deleted values until the deque state has been
raymond.hettinger
python-checkins at python.org
Sat Mar 21 09:53:22 CET 2015
https://hg.python.org/cpython/rev/130a6a029a97
changeset: 95113:130a6a029a97
user: Raymond Hettinger <python at rcn.com>
date: Sat Mar 21 01:53:16 2015 -0700
summary:
For safety, wait to decref deleted values until the deque state has been restored.
files:
Modules/_collectionsmodule.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -864,9 +864,9 @@
if (cmp > 0) {
PyObject *tgt = deque_popleft(deque, NULL);
assert (tgt != NULL);
- Py_DECREF(tgt);
if (_deque_rotate(deque, i) == -1)
return NULL;
+ Py_DECREF(tgt);
Py_RETURN_NONE;
}
else if (cmp < 0) {
@@ -956,16 +956,16 @@
deque_del_item(dequeobject *deque, Py_ssize_t i)
{
PyObject *item;
+ int rv;
assert (i >= 0 && i < Py_SIZE(deque));
if (_deque_rotate(deque, -i) == -1)
return -1;
-
item = deque_popleft(deque, NULL);
+ rv = _deque_rotate(deque, i);
assert (item != NULL);
Py_DECREF(item);
-
- return _deque_rotate(deque, i);
+ return rv;
}
static int
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list