]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-99537: Use Py_CLEAR() function in C code (#99686)
authorVictor Stinner <vstinner@python.org>
Tue, 22 Nov 2022 14:22:55 +0000 (15:22 +0100)
committerGitHub <noreply@github.com>
Tue, 22 Nov 2022 14:22:55 +0000 (15:22 +0100)
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.

Modules/_xxsubinterpretersmodule.c
Modules/_zoneinfo.c

index e65137e58fb5bbff6ead644f1688445b5e1493f0..244ae3517e1d8124606abe8981276baca66fa768 100644 (file)
@@ -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;
index c0fef13ba17d205109760e7252a9fd532872e1af..cb7d4c943845b1efe5ddc372f44f8b684ec97b87 100644 (file)
@@ -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);