summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-11-14 12:51:00 (GMT)
committerGitHub <noreply@github.com>2023-11-14 12:51:00 (GMT)
commit4f04172c9287c507f1426e02ddfc432f1f3ade54 (patch)
tree800ac400c3776336e1f52b49a0f10b4dae9af8c1 /Python
parentf44d6ff6e0c9eeb0bb246a3dd8f99d40b7050054 (diff)
downloadcpython-4f04172c9287c507f1426e02ddfc432f1f3ade54.zip
cpython-4f04172c9287c507f1426e02ddfc432f1f3ade54.tar.gz
cpython-4f04172c9287c507f1426e02ddfc432f1f3ade54.tar.bz2
gh-111262: Add PyDict_Pop() function (#112028)
_PyDict_Pop_KnownHash(): remove the default value and the return type becomes an int. Co-authored-by: Stefan Behnel <stefan_ml@behnel.de> Co-authored-by: Antoine Pitrou <pitrou@free.fr>
Diffstat (limited to 'Python')
-rw-r--r--Python/import.c4
-rw-r--r--Python/sysmodule.c4
2 files changed, 3 insertions, 5 deletions
diff --git a/Python/import.c b/Python/import.c
index 12f586a..f37393b 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -395,8 +395,8 @@ remove_module(PyThreadState *tstate, PyObject *name)
PyObject *modules = MODULES(tstate->interp);
if (PyDict_CheckExact(modules)) {
- PyObject *mod = _PyDict_Pop(modules, name, Py_None);
- Py_XDECREF(mod);
+ // Error is reported to the caller
+ (void)PyDict_Pop(modules, name, NULL);
}
else if (PyMapping_DelItem(modules, name) < 0) {
if (_PyErr_ExceptionMatches(tstate, PyExc_KeyError)) {
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index e2852328..c17de44 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -125,11 +125,9 @@ sys_set_object(PyInterpreterState *interp, PyObject *key, PyObject *v)
}
PyObject *sd = interp->sysdict;
if (v == NULL) {
- v = _PyDict_Pop(sd, key, Py_None);
- if (v == NULL) {
+ if (PyDict_Pop(sd, key, NULL) < 0) {
return -1;
}
- Py_DECREF(v);
return 0;
}
else {