summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Python/_warnings.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Python/_warnings.c b/Python/_warnings.c
index 4b7fb88..d476503 100644
--- a/Python/_warnings.c
+++ b/Python/_warnings.c
@@ -425,15 +425,15 @@ already_warned(PyInterpreterState *interp, PyObject *registry, PyObject *key,
Py_DECREF(version_obj);
}
else {
- already_warned = PyDict_GetItemWithError(registry, key);
+ if (PyDict_GetItemRef(registry, key, &already_warned) < 0) {
+ return -1;
+ }
if (already_warned != NULL) {
int rc = PyObject_IsTrue(already_warned);
+ Py_DECREF(already_warned);
if (rc != 0)
return rc;
}
- else if (PyErr_Occurred()) {
- return -1;
- }
}
/* This warning wasn't found in the registry, set it. */