From 0ce69f7c4f46b6b9c38ff4996d7d36c300d96f9e Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Tue, 14 Nov 2023 21:11:05 +0200 Subject: [PATCH] gh-111789: Use PyDict_GetItemRef() in Modules/_struct.c --- Modules/_struct.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Modules/_struct.c b/Modules/_struct.c index ff1bf4e96c5f21..3637958933b40c 100644 --- a/Modules/_struct.c +++ b/Modules/_struct.c @@ -2256,14 +2256,13 @@ cache_struct_converter(PyObject *module, PyObject *fmt, PyStructObject **ptr) return 0; } - s_object = PyDict_GetItemWithError(state->cache, fmt); + if (PyDict_GetItemRef(state->cache, fmt, &s_object) < 0) { + return 0; + } if (s_object != NULL) { - *ptr = (PyStructObject *)Py_NewRef(s_object); + *ptr = (PyStructObject *)s_object; return Py_CLEANUP_SUPPORTED; } - else if (PyErr_Occurred()) { - return 0; - } s_object = PyObject_CallOneArg(state->PyStructType, fmt); if (s_object != NULL) {