From: Serhiy Storchaka Date: Mon, 27 Nov 2023 17:55:30 +0000 (+0200) Subject: gh-111789: Use PyDict_GetItemRef() in Python/symtable.c (gh-112084) X-Git-Tag: v3.13.0a3~621 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=befbad3663a48a8de2e1263afe18ec9fa47dfc6d;p=thirdparty%2FPython%2Fcpython.git gh-111789: Use PyDict_GetItemRef() in Python/symtable.c (gh-112084) --- diff --git a/Python/symtable.c b/Python/symtable.c index da7fec0ee7cf..52d5932896b2 100644 --- a/Python/symtable.c +++ b/Python/symtable.c @@ -497,18 +497,14 @@ _PySymtable_Lookup(struct symtable *st, void *key) k = PyLong_FromVoidPtr(key); if (k == NULL) return NULL; - v = PyDict_GetItemWithError(st->st_blocks, k); - Py_DECREF(k); - - if (v) { - assert(PySTEntry_Check(v)); - } - else if (!PyErr_Occurred()) { + if (PyDict_GetItemRef(st->st_blocks, k, &v) == 0) { PyErr_SetString(PyExc_KeyError, "unknown symbol table entry"); } + Py_DECREF(k); - return (PySTEntryObject *)Py_XNewRef(v); + assert(v == NULL || PySTEntry_Check(v)); + return (PySTEntryObject *)v; } long