diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2024-03-07 09:21:08 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-07 09:21:08 (GMT) |
commit | 72d3cc94cd8cae1925e7a14f297b06ac6184f916 (patch) | |
tree | df9d7a5a97a79f97065282dd8e5a89f57ea2e18b /Objects/moduleobject.c | |
parent | 882fcede83af783a834b759e4643130dc1307ee3 (diff) | |
download | cpython-72d3cc94cd8cae1925e7a14f297b06ac6184f916.zip cpython-72d3cc94cd8cae1925e7a14f297b06ac6184f916.tar.gz cpython-72d3cc94cd8cae1925e7a14f297b06ac6184f916.tar.bz2 |
gh-116437: Use new C API PyDict_Pop() to simplify the code (GH-116438)
Diffstat (limited to 'Objects/moduleobject.c')
-rw-r--r-- | Objects/moduleobject.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c index 3a1c516..9cd98fb 100644 --- a/Objects/moduleobject.c +++ b/Objects/moduleobject.c @@ -1004,9 +1004,13 @@ module_set_annotations(PyModuleObject *m, PyObject *value, void *Py_UNUSED(ignor } else { /* delete */ - ret = PyDict_DelItem(dict, &_Py_ID(__annotations__)); - if (ret < 0 && PyErr_ExceptionMatches(PyExc_KeyError)) { - PyErr_SetString(PyExc_AttributeError, "__annotations__"); + ret = PyDict_Pop(dict, &_Py_ID(__annotations__), NULL); + if (ret == 0) { + PyErr_SetObject(PyExc_AttributeError, &_Py_ID(__annotations__)); + ret = -1; + } + else if (ret > 0) { + ret = 0; } } |