summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2022-11-22 14:22:55 (GMT)
committerGitHub <noreply@github.com>2022-11-22 14:22:55 (GMT)
commit9a91182d4a87e4511dad20ad101e3eab0e1c5088 (patch)
tree5b0faaafd4db48a1c57507670457b2192f6299a7
parent7e3f09cad9b783d8968aa79ff6a8ee57beb8b83e (diff)
downloadcpython-9a91182d4a87e4511dad20ad101e3eab0e1c5088.zip
cpython-9a91182d4a87e4511dad20ad101e3eab0e1c5088.tar.gz
cpython-9a91182d4a87e4511dad20ad101e3eab0e1c5088.tar.bz2
gh-99537: Use Py_CLEAR() function in C code (#99686)
Replace "Py_XDECREF(var); var = NULL;" with "Py_CLEAR(var);". Don't replace "Py_DECREF(var); var = NULL;" with "Py_CLEAR(var);". It would add an useless "if (var)" test in code path where var cannot be NULL.
-rw-r--r--Modules/_xxsubinterpretersmodule.c3
-rw-r--r--Modules/_zoneinfo.c14
2 files changed, 5 insertions, 12 deletions
diff --git a/Modules/_xxsubinterpretersmodule.c b/Modules/_xxsubinterpretersmodule.c
index e65137e..244ae35 100644
--- a/Modules/_xxsubinterpretersmodule.c
+++ b/Modules/_xxsubinterpretersmodule.c
@@ -2383,8 +2383,7 @@ channel_list_interpreters(PyObject *self, PyObject *args, PyObject *kwds)
goto finally;
except:
- Py_XDECREF(ids);
- ids = NULL;
+ Py_CLEAR(ids);
finally:
return ids;
diff --git a/Modules/_zoneinfo.c b/Modules/_zoneinfo.c
index c0fef13..cb7d4c9 100644
--- a/Modules/_zoneinfo.c
+++ b/Modules/_zoneinfo.c
@@ -231,8 +231,7 @@ zoneinfo_new_instance(PyTypeObject *type, PyObject *key)
goto cleanup;
error:
- Py_XDECREF(self);
- self = NULL;
+ Py_CLEAR(self);
cleanup:
if (file_obj != NULL) {
PyObject *exc, *val, *tb;
@@ -2606,14 +2605,9 @@ static PyMethodDef module_methods[] = {{NULL, NULL}};
static void
module_free(void *m)
{
- Py_XDECREF(_tzpath_find_tzfile);
- _tzpath_find_tzfile = NULL;
-
- Py_XDECREF(_common_mod);
- _common_mod = NULL;
-
- Py_XDECREF(io_open);
- io_open = NULL;
+ Py_CLEAR(_tzpath_find_tzfile);
+ Py_CLEAR(_common_mod);
+ Py_CLEAR(io_open);
xdecref_ttinfo(&NO_TTINFO);