[Python-checkins] cpython: Issue #26200: The SETREF macro adds unnecessary work in some cases.

raymond.hettinger python-checkins at python.org
Mon Feb 8 23:35:01 EST 2016


https://hg.python.org/cpython/rev/3084914245d2
changeset:   100206:3084914245d2
parent:      100204:e2d3c93d8763
user:        Raymond Hettinger <python at rcn.com>
date:        Mon Feb 08 20:34:49 2016 -0800
summary:
  Issue #26200:  The SETREF macro adds unnecessary work in some cases.

files:
  Modules/_collectionsmodule.c |  5 ++++-
  1 files changed, 4 insertions(+), 1 deletions(-)


diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c
--- a/Modules/_collectionsmodule.c
+++ b/Modules/_collectionsmodule.c
@@ -1218,6 +1218,7 @@
 static int
 deque_ass_item(dequeobject *deque, Py_ssize_t i, PyObject *v)
 {
+    PyObject *old_value;
     block *b;
     Py_ssize_t n, len=Py_SIZE(deque), halflen=(len+1)>>1, index=i;
 
@@ -1246,7 +1247,9 @@
             b = b->leftlink;
     }
     Py_INCREF(v);
-    Py_SETREF(b->data[i], v);
+    old_value = b->data[i];
+    b->data[i] = v;
+    Py_DECREF(old_value);
     return 0;
 }
 

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list