diff options
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Python/ceval.c | 5 |
2 files changed, 5 insertions, 2 deletions
@@ -13,6 +13,8 @@ Core and Builtins - Issue #19398: Extra slash no longer added to sys.path components in case of empty compile-time PYTHONPATH components. +- Issue #28665: Improve speed of the STORE_DEREF opcode by 40%. + - Issue #28583: PyDict_SetDefault didn't combine split table when needed. Patch by Xiang Zhang. diff --git a/Python/ceval.c b/Python/ceval.c index b2c90cc..6bdc998 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2462,8 +2462,9 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag) TARGET(STORE_DEREF) { PyObject *v = POP(); PyObject *cell = freevars[oparg]; - PyCell_Set(cell, v); - Py_DECREF(v); + PyObject *oldobj = PyCell_GET(cell); + PyCell_SET(cell, v); + Py_XDECREF(oldobj); DISPATCH(); } |