summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2023-11-27 17:55:30 (GMT)
committerGitHub <noreply@github.com>2023-11-27 17:55:30 (GMT)
commitbefbad3663a48a8de2e1263afe18ec9fa47dfc6d (patch)
tree6ff0ea1aaa6f2b1d6162f0d250b038ab473d892b /Python
parentaa438bdd6deed225d30d87dc3a77602ffc924213 (diff)
downloadcpython-befbad3663a48a8de2e1263afe18ec9fa47dfc6d.zip
cpython-befbad3663a48a8de2e1263afe18ec9fa47dfc6d.tar.gz
cpython-befbad3663a48a8de2e1263afe18ec9fa47dfc6d.tar.bz2
gh-111789: Use PyDict_GetItemRef() in Python/symtable.c (gh-112084)
Diffstat (limited to 'Python')
-rw-r--r--Python/symtable.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/Python/symtable.c b/Python/symtable.c
index da7fec0..52d5932 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