https://github.com/python/cpython/commit/183b97bb9db075197153ad82b8ffdfce8e913250
commit: 183b97bb9db075197153ad82b8ffdfce8e913250
branch: main
author: Serhiy Storchaka <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2024-01-10T15:35:10+02:00
summary:
gh-111789: Use PyDict_GetItemRef() in Modules/_zoneinfo.c (GH-112078)
files:
M Modules/_zoneinfo.c
diff --git a/Modules/_zoneinfo.c b/Modules/_zoneinfo.c
index 77644c3155bc33..fcd4af64df0be9 100644
--- a/Modules/_zoneinfo.c
+++ b/Modules/_zoneinfo.c
@@ -853,28 +853,19 @@ load_timedelta(zoneinfo_state *state, long seconds)
if (pyoffset == NULL) {
return NULL;
}
- rv = PyDict_GetItemWithError(state->TIMEDELTA_CACHE, pyoffset);
- if (rv == NULL) {
- if (PyErr_Occurred()) {
- goto error;
- }
+ if (PyDict_GetItemRef(state->TIMEDELTA_CACHE, pyoffset, &rv) == 0) {
PyObject *tmp = PyDateTimeAPI->Delta_FromDelta(
0, seconds, 0, 1, PyDateTimeAPI->DeltaType);
- if (tmp == NULL) {
- goto error;
+ if (tmp != NULL) {
+ rv = PyDict_SetDefault(state->TIMEDELTA_CACHE, pyoffset, tmp);
+ Py_XINCREF(rv);
+ Py_DECREF(tmp);
}
-
- rv = PyDict_SetDefault(state->TIMEDELTA_CACHE, pyoffset, tmp);
- Py_DECREF(tmp);
}
- Py_XINCREF(rv);
Py_DECREF(pyoffset);
return rv;
-error:
- Py_DECREF(pyoffset);
- return NULL;
}
/* Constructor for _ttinfo object - this starts by initializing the _ttinfo
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]