Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3841866

Browse files
committed
Issue #26200: The SETREF macro adds unnecessary work in some cases.
1 parent 263c448 commit 3841866

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

Modules/_collectionsmodule.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1218,6 +1218,7 @@ deque_del_item(dequeobject *deque, Py_ssize_t i)
12181218
static int
12191219
deque_ass_item(dequeobject *deque, Py_ssize_t i, PyObject *v)
12201220
{
1221+
PyObject *old_value;
12211222
block *b;
12221223
Py_ssize_t n, len=Py_SIZE(deque), halflen=(len+1)>>1, index=i;
12231224

@@ -1246,7 +1247,9 @@ deque_ass_item(dequeobject *deque, Py_ssize_t i, PyObject *v)
12461247
b = b->leftlink;
12471248
}
12481249
Py_INCREF(v);
1249-
Py_SETREF(b->data[i], v);
1250+
old_value = b->data[i];
1251+
b->data[i] = v;
1252+
Py_DECREF(old_value);
12501253
return 0;
12511254
}
12521255

0 commit comments

Comments
 (0)