4d5d90
diff --git a/psutil/_psutil_aix.c b/psutil/_psutil_aix.c
4d5d90
index 916254d..37a1fb2 100644
4d5d90
--- a/psutil/_psutil_aix.c
4d5d90
+++ b/psutil/_psutil_aix.c
4d5d90
@@ -158,8 +158,8 @@ psutil_proc_name_and_args(PyObject *self, PyObject *args) {
4d5d90
     py_retlist = Py_BuildValue("OO", py_name, py_args);
4d5d90
     if (!py_retlist)
4d5d90
         goto error;
4d5d90
-    Py_DECREF(py_name);
4d5d90
-    Py_DECREF(py_args);
4d5d90
+    Py_CLEAR(py_name);
4d5d90
+    Py_CLEAR(py_args);
4d5d90
     return py_retlist;
4d5d90
 
4d5d90
 error:
4d5d90
@@ -389,10 +389,10 @@ psutil_users(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_username);
4d5d90
-        Py_DECREF(py_tty);
4d5d90
-        Py_DECREF(py_hostname);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_username);
4d5d90
+        Py_CLEAR(py_tty);
4d5d90
+        Py_CLEAR(py_hostname);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
     endutxent();
4d5d90
 
4d5d90
@@ -449,9 +449,9 @@ psutil_disk_partitions(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_dev);
4d5d90
-        Py_DECREF(py_mountp);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_dev);
4d5d90
+        Py_CLEAR(py_mountp);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
         mt = getmntent(file);
4d5d90
     }
4d5d90
     endmntent(file);
4d5d90
diff --git a/psutil/_psutil_bsd.c b/psutil/_psutil_bsd.c
4d5d90
index 9a2ed04..3dc04e0 100644
4d5d90
--- a/psutil/_psutil_bsd.c
4d5d90
+++ b/psutil/_psutil_bsd.c
4d5d90
@@ -152,7 +152,7 @@ psutil_pids(PyObject *self, PyObject *args) {
4d5d90
                 goto error;
4d5d90
             if (PyList_Append(py_retlist, py_pid))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_pid);
4d5d90
+            Py_CLEAR(py_pid);
4d5d90
             proclist++;
4d5d90
         }
4d5d90
         free(orig_address);
4d5d90
@@ -507,8 +507,8 @@ psutil_proc_open_files(PyObject *self, PyObject *args) {
4d5d90
                 goto error;
4d5d90
             if (PyList_Append(py_retlist, py_tuple))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_path);
4d5d90
-            Py_DECREF(py_tuple);
4d5d90
+            Py_CLEAR(py_path);
4d5d90
+            Py_CLEAR(py_tuple);
4d5d90
         }
4d5d90
     }
4d5d90
     free(freep);
4d5d90
@@ -670,9 +670,9 @@ psutil_disk_partitions(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_dev);
4d5d90
-        Py_DECREF(py_mountp);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_dev);
4d5d90
+        Py_CLEAR(py_mountp);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
 
4d5d90
     free(fs);
4d5d90
@@ -765,7 +765,7 @@ psutil_net_io_counters(PyObject *self, PyObject *args) {
4d5d90
                 goto error;
4d5d90
             if (PyDict_SetItemString(py_retdict, ifc_name, py_ifc_info))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_ifc_info);
4d5d90
+            Py_CLEAR(py_ifc_info);
4d5d90
         }
4d5d90
         else {
4d5d90
             continue;
4d5d90
@@ -840,10 +840,10 @@ psutil_users(PyObject *self, PyObject *args) {
4d5d90
             fclose(fp);
4d5d90
             goto error;
4d5d90
         }
4d5d90
-        Py_DECREF(py_username);
4d5d90
-        Py_DECREF(py_tty);
4d5d90
-        Py_DECREF(py_hostname);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_username);
4d5d90
+        Py_CLEAR(py_tty);
4d5d90
+        Py_CLEAR(py_hostname);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
 
4d5d90
     fclose(fp);
4d5d90
@@ -883,10 +883,10 @@ psutil_users(PyObject *self, PyObject *args) {
4d5d90
             endutxent();
4d5d90
             goto error;
4d5d90
         }
4d5d90
-        Py_DECREF(py_username);
4d5d90
-        Py_DECREF(py_tty);
4d5d90
-        Py_DECREF(py_hostname);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_username);
4d5d90
+        Py_CLEAR(py_tty);
4d5d90
+        Py_CLEAR(py_hostname);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
 
4d5d90
     endutxent();
4d5d90
diff --git a/psutil/_psutil_linux.c b/psutil/_psutil_linux.c
4d5d90
index d1f0d14..00212ba 100644
4d5d90
--- a/psutil/_psutil_linux.c
4d5d90
+++ b/psutil/_psutil_linux.c
4d5d90
@@ -232,9 +232,9 @@ psutil_disk_partitions(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_dev);
4d5d90
-        Py_DECREF(py_mountp);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_dev);
4d5d90
+        Py_CLEAR(py_mountp);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
     endmntent(file);
4d5d90
     return py_retlist;
4d5d90
@@ -488,10 +488,10 @@ psutil_users(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_username);
4d5d90
-        Py_DECREF(py_tty);
4d5d90
-        Py_DECREF(py_hostname);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_username);
4d5d90
+        Py_CLEAR(py_tty);
4d5d90
+        Py_CLEAR(py_hostname);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
     endutent();
4d5d90
     return py_retlist;
4d5d90
diff --git a/psutil/_psutil_osx.c b/psutil/_psutil_osx.c
4d5d90
index 55dd64c..37f5284 100644
4d5d90
--- a/psutil/_psutil_osx.c
4d5d90
+++ b/psutil/_psutil_osx.c
4d5d90
@@ -795,7 +795,7 @@ psutil_per_cpu_times(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_cputime))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_cputime);
4d5d90
+        Py_CLEAR(py_cputime);
4d5d90
     }
4d5d90
 
4d5d90
     ret = vm_deallocate(mach_task_self(), (vm_address_t)info_array,
4d5d90
@@ -977,9 +977,9 @@ psutil_disk_partitions(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_dev);
4d5d90
-        Py_DECREF(py_mountp);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_dev);
4d5d90
+        Py_CLEAR(py_mountp);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
 
4d5d90
     free(fs);
4d5d90
@@ -1055,7 +1055,6 @@ psutil_proc_threads(PyObject *self, PyObject *args) {
4d5d90
     }
4d5d90
 
4d5d90
     for (j = 0; j < thread_count; j++) {
4d5d90
-        py_tuple = NULL;
4d5d90
         thread_info_count = THREAD_INFO_MAX;
4d5d90
         kr = thread_info(thread_list[j], THREAD_BASIC_INFO,
4d5d90
                          (thread_info_t)thinfo_basic, &thread_info_count);
4d5d90
@@ -1076,7 +1075,7 @@ psutil_proc_threads(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
 
4d5d90
     ret = vm_deallocate(task, (vm_address_t)thread_list,
4d5d90
@@ -1185,10 +1184,8 @@ psutil_proc_open_files(PyObject *self, PyObject *args) {
4d5d90
                 goto error;
4d5d90
             if (PyList_Append(py_retlist, py_tuple))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_tuple);
4d5d90
-            py_tuple = NULL;
4d5d90
-            Py_DECREF(py_path);
4d5d90
-            py_path = NULL;
4d5d90
+            Py_CLEAR(py_tuple);
4d5d90
+            Py_CLEAR(py_path);
4d5d90
             // --- /construct python list
4d5d90
         }
4d5d90
     }
4d5d90
@@ -1368,7 +1365,7 @@ psutil_proc_connections(PyObject *self, PyObject *args) {
4d5d90
                     goto error;
4d5d90
                 if (PyList_Append(py_retlist, py_tuple))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_tuple);
4d5d90
+                Py_CLEAR(py_tuple);
4d5d90
             }
4d5d90
             else if (family == AF_UNIX) {
4d5d90
                 py_laddr = PyUnicode_DecodeFSDefault(
4d5d90
@@ -1390,9 +1387,9 @@ psutil_proc_connections(PyObject *self, PyObject *args) {
4d5d90
                     goto error;
4d5d90
                 if (PyList_Append(py_retlist, py_tuple))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_tuple);
4d5d90
-                Py_DECREF(py_laddr);
4d5d90
-                Py_DECREF(py_raddr);
4d5d90
+                Py_CLEAR(py_tuple);
4d5d90
+                Py_CLEAR(py_laddr);
4d5d90
+                Py_CLEAR(py_raddr);
4d5d90
             }
4d5d90
         }
4d5d90
     }
4d5d90
@@ -1513,7 +1510,7 @@ psutil_net_io_counters(PyObject *self, PyObject *args) {
4d5d90
                 goto error;
4d5d90
             if (PyDict_SetItemString(py_retdict, ifc_name, py_ifc_info))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_ifc_info);
4d5d90
+            Py_CLEAR(py_ifc_info);
4d5d90
         }
4d5d90
         else {
4d5d90
             continue;
4d5d90
@@ -1686,7 +1683,7 @@ psutil_disk_io_counters(PyObject *self, PyObject *args) {
4d5d90
                 goto error;
4d5d90
             if (PyDict_SetItemString(py_retdict, disk_name, py_disk_info))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_disk_info);
4d5d90
+            Py_CLEAR(py_disk_info);
4d5d90
 
4d5d90
             CFRelease(parent_dict);
4d5d90
             IOObjectRelease(parent);
4d5d90
@@ -1748,10 +1745,10 @@ psutil_users(PyObject *self, PyObject *args) {
4d5d90
             endutxent();
4d5d90
             goto error;
4d5d90
         }
4d5d90
-        Py_DECREF(py_username);
4d5d90
-        Py_DECREF(py_tty);
4d5d90
-        Py_DECREF(py_hostname);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_username);
4d5d90
+        Py_CLEAR(py_tty);
4d5d90
+        Py_CLEAR(py_hostname);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
 
4d5d90
     endutxent();
4d5d90
diff --git a/psutil/_psutil_posix.c b/psutil/_psutil_posix.c
4d5d90
index cc82727..6d9212a 100644
4d5d90
--- a/psutil/_psutil_posix.c
4d5d90
+++ b/psutil/_psutil_posix.c
4d5d90
@@ -324,11 +324,11 @@ psutil_net_if_addrs(PyObject* self, PyObject* args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
-        Py_DECREF(py_address);
4d5d90
-        Py_DECREF(py_netmask);
4d5d90
-        Py_DECREF(py_broadcast);
4d5d90
-        Py_DECREF(py_ptp);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
+        Py_CLEAR(py_address);
4d5d90
+        Py_CLEAR(py_netmask);
4d5d90
+        Py_CLEAR(py_broadcast);
4d5d90
+        Py_CLEAR(py_ptp);
4d5d90
     }
4d5d90
 
4d5d90
     freeifaddrs(ifaddr);
4d5d90
diff --git a/psutil/_psutil_sunos.c b/psutil/_psutil_sunos.c
4d5d90
index c667364..ff635f6 100644
4d5d90
--- a/psutil/_psutil_sunos.c
4d5d90
+++ b/psutil/_psutil_sunos.c
4d5d90
@@ -214,8 +214,8 @@ psutil_proc_environ(PyObject *self, PyObject *args) {
4d5d90
         if (PyDict_SetItem(py_retdict, py_envname, py_envval) < 0)
4d5d90
             goto error;
4d5d90
 
4d5d90
-        Py_DECREF(py_envname);
4d5d90
-        Py_DECREF(py_envval);
4d5d90
+        Py_CLEAR(py_envname);
4d5d90
+        Py_CLEAR(py_envval);
4d5d90
     }
4d5d90
 
4d5d90
     psutil_free_cstrings_array(env, env_count);
4d5d90
@@ -576,10 +576,10 @@ psutil_users(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_username);
4d5d90
-        Py_DECREF(py_tty);
4d5d90
-        Py_DECREF(py_hostname);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_username);
4d5d90
+        Py_CLEAR(py_tty);
4d5d90
+        Py_CLEAR(py_hostname);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
     endutxent();
4d5d90
 
4d5d90
@@ -635,9 +635,9 @@ psutil_disk_partitions(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_dev);
4d5d90
-        Py_DECREF(py_mountp);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_dev);
4d5d90
+        Py_CLEAR(py_mountp);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
     fclose(file);
4d5d90
     return py_retlist;
4d5d90
@@ -688,8 +688,7 @@ psutil_per_cpu_times(PyObject *self, PyObject *args) {
4d5d90
                 goto error;
4d5d90
             if (PyList_Append(py_retlist, py_cputime))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_cputime);
4d5d90
-            py_cputime = NULL;
4d5d90
+            Py_CLEAR(py_cputime);
4d5d90
         }
4d5d90
     }
4d5d90
 
4d5d90
@@ -745,7 +744,7 @@ psutil_disk_io_counters(PyObject *self, PyObject *args) {
4d5d90
                 if (PyDict_SetItemString(py_retdict, ksp->ks_name,
4d5d90
                                          py_disk_info))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_disk_info);
4d5d90
+                Py_CLEAR(py_disk_info);
4d5d90
             }
4d5d90
         }
4d5d90
         ksp = ksp->ks_next;
4d5d90
@@ -880,8 +879,8 @@ psutil_proc_memory_maps(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_path);
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_path);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
 
4d5d90
         // increment pointer
4d5d90
         p += 1;
4d5d90
@@ -996,7 +995,7 @@ psutil_net_io_counters(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyDict_SetItemString(py_retdict, ksp->ks_name, py_ifc_info))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_ifc_info);
4d5d90
+        Py_CLEAR(py_ifc_info);
4d5d90
         goto next;
4d5d90
 
4d5d90
 next:
4d5d90
@@ -1189,7 +1188,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
4d5d90
                     goto error;
4d5d90
                 if (PyList_Append(py_retlist, py_tuple))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_tuple);
4d5d90
+                Py_CLEAR(py_tuple);
4d5d90
             }
4d5d90
         }
4d5d90
 #if defined(AF_INET6)
4d5d90
@@ -1232,7 +1231,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
4d5d90
                     goto error;
4d5d90
                 if (PyList_Append(py_retlist, py_tuple))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_tuple);
4d5d90
+                Py_CLEAR(py_tuple);
4d5d90
             }
4d5d90
         }
4d5d90
 #endif
4d5d90
@@ -1240,7 +1239,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
4d5d90
         else if (mibhdr->level == MIB2_UDP || mibhdr->level == MIB2_UDP_ENTRY) {
4d5d90
             ude = (mib2_udpEntry_t *)databuf.buf;
4d5d90
             num_ent = mibhdr->len / sizeof(mib2_udpEntry_t);
4d5d90
-	    assert(num_ent * sizeof(mib2_udpEntry_t) == mibhdr->len);
4d5d90
+	        assert(num_ent * sizeof(mib2_udpEntry_t) == mibhdr.len);
4d5d90
             for (i = 0; i < num_ent; i++, ude++) {
4d5d90
 #ifdef NEW_MIB_COMPLIANT
4d5d90
                 processed_pid = ude->udpCreationProcess;
4d5d90
@@ -1271,7 +1270,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
4d5d90
                     goto error;
4d5d90
                 if (PyList_Append(py_retlist, py_tuple))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_tuple);
4d5d90
+                Py_CLEAR(py_tuple);
4d5d90
             }
4d5d90
         }
4d5d90
 #if defined(AF_INET6)
4d5d90
@@ -1304,7 +1303,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
4d5d90
                     goto error;
4d5d90
                 if (PyList_Append(py_retlist, py_tuple))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_tuple);
4d5d90
+                Py_CLEAR(py_tuple);
4d5d90
             }
4d5d90
         }
4d5d90
 #endif
4d5d90
@@ -1477,7 +1476,7 @@ psutil_net_if_stats(PyObject* self, PyObject* args) {
4d5d90
                 goto error;
4d5d90
             if (PyDict_SetItemString(py_retdict, ksp->ks_name, py_ifc_info))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_ifc_info);
4d5d90
+            Py_CLEAR(py_ifc_info);
4d5d90
         }
4d5d90
     }
4d5d90
 
4d5d90
diff --git a/psutil/_psutil_windows.c b/psutil/_psutil_windows.c
4d5d90
index 81d1b4a..adef70c 100644
4d5d90
--- a/psutil/_psutil_windows.c
4d5d90
+++ b/psutil/_psutil_windows.c
4d5d90
@@ -307,7 +307,7 @@ psutil_pids(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_pid))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_pid);
4d5d90
+        Py_CLEAR(py_pid);
4d5d90
     }
4d5d90
 
4d5d90
     // free C array allocated for PIDs
4d5d90
@@ -1019,7 +1019,7 @@ psutil_per_cpu_times(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
 
4d5d90
     free(sppi);
4d5d90
@@ -1237,7 +1237,7 @@ psutil_proc_threads(PyObject *self, PyObject *args) {
4d5d90
                 goto error;
4d5d90
             if (PyList_Append(py_retlist, py_tuple))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_tuple);
4d5d90
+            Py_CLEAR(py_tuple);
4d5d90
 
4d5d90
             CloseHandle(hThread);
4d5d90
         }
4d5d90
@@ -1695,7 +1695,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
4d5d90
                     goto error;
4d5d90
                 if (PyList_Append(py_retlist, py_conn_tuple))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_conn_tuple);
4d5d90
+                Py_CLEAR(py_conn_tuple);
4d5d90
             }
4d5d90
         }
4d5d90
         else {
4d5d90
@@ -1792,7 +1792,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
4d5d90
                     goto error;
4d5d90
                 if (PyList_Append(py_retlist, py_conn_tuple))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_conn_tuple);
4d5d90
+                Py_CLEAR(py_conn_tuple);
4d5d90
             }
4d5d90
         }
4d5d90
         else {
4d5d90
@@ -1866,7 +1866,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
4d5d90
                     goto error;
4d5d90
                 if (PyList_Append(py_retlist, py_conn_tuple))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_conn_tuple);
4d5d90
+                Py_CLEAR(py_conn_tuple);
4d5d90
             }
4d5d90
         }
4d5d90
         else {
4d5d90
@@ -1939,7 +1939,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
4d5d90
                     goto error;
4d5d90
                 if (PyList_Append(py_retlist, py_conn_tuple))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_conn_tuple);
4d5d90
+                Py_CLEAR(py_conn_tuple);
4d5d90
             }
4d5d90
         }
4d5d90
         else {
4d5d90
@@ -2331,8 +2331,8 @@ psutil_net_io_counters(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyDict_SetItem(py_retdict, py_nic_name, py_nic_info))
4d5d90
             goto error;
4d5d90
-        Py_XDECREF(py_nic_name);
4d5d90
-        Py_XDECREF(py_nic_info);
4d5d90
+        Py_CLEAR(py_nic_name);
4d5d90
+        Py_CLEAR(py_nic_info);
4d5d90
 
4d5d90
         free(pIfRow);
4d5d90
         pCurrAddresses = pCurrAddresses->Next;
4d5d90
@@ -2446,7 +2446,7 @@ psutil_disk_io_counters(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyDict_SetItemString(py_retdict, szDeviceDisplay, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_XDECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
 
4d5d90
 next:
4d5d90
         CloseHandle(hDevice);
4d5d90
@@ -2603,7 +2603,7 @@ psutil_disk_partitions(PyObject *self, PyObject *args) {
4d5d90
                             goto error;
4d5d90
                         }
4d5d90
 
4d5d90
-                        Py_DECREF(py_tuple);
4d5d90
+                        Py_CLEAR(py_tuple);
4d5d90
 
4d5d90
                         // Continue looking for more mount points
4d5d90
                         mp_flag = FindNextVolumeMountPoint(mp_h, mp_buf, MAX_PATH);
4d5d90
@@ -2628,7 +2628,7 @@ psutil_disk_partitions(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
         goto next;
4d5d90
 
4d5d90
 next:
4d5d90
@@ -2758,9 +2758,9 @@ psutil_users(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyList_Append(py_retlist, py_tuple))
4d5d90
             goto error;
4d5d90
-        Py_XDECREF(py_username);
4d5d90
-        Py_XDECREF(py_address);
4d5d90
-        Py_XDECREF(py_tuple);
4d5d90
+        Py_CLEAR(py_username);
4d5d90
+        Py_CLEAR(py_address);
4d5d90
+        Py_CLEAR(py_tuple);
4d5d90
     }
4d5d90
 
4d5d90
     WTSFreeMemory(sessions);
4d5d90
@@ -2992,8 +2992,8 @@ psutil_proc_memory_maps(PyObject *self, PyObject *args) {
4d5d90
                 goto error;
4d5d90
             if (PyList_Append(py_retlist, py_tuple))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_tuple);
4d5d90
-            Py_DECREF(py_str);
4d5d90
+            Py_CLEAR(py_tuple);
4d5d90
+            Py_CLEAR(py_str);
4d5d90
         }
4d5d90
         previousAllocationBase = basicInfo.AllocationBase;
4d5d90
         baseAddress = (PCHAR)baseAddress + basicInfo.RegionSize;
4d5d90
@@ -3043,8 +3043,8 @@ psutil_ppid_map(PyObject *self, PyObject *args) {
4d5d90
                 goto error;
4d5d90
             if (PyDict_SetItem(py_retdict, py_pid, py_ppid))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_pid);
4d5d90
-            Py_DECREF(py_ppid);
4d5d90
+            Py_CLEAR(py_pid);
4d5d90
+            Py_CLEAR(py_ppid);
4d5d90
         } while (Process32Next(handle, &pe);;
4d5d90
     }
4d5d90
 
4d5d90
@@ -3147,8 +3147,8 @@ psutil_net_if_addrs(PyObject *self, PyObject *args) {
4d5d90
                 goto error;
4d5d90
             if (PyList_Append(py_retlist, py_tuple))
4d5d90
                 goto error;
4d5d90
-            Py_DECREF(py_tuple);
4d5d90
-            Py_DECREF(py_mac_address);
4d5d90
+            Py_CLEAR(py_tuple);
4d5d90
+            Py_CLEAR(py_mac_address);
4d5d90
         }
4d5d90
 
4d5d90
         // find out the IP address associated with the NIC
4d5d90
@@ -3224,14 +3224,14 @@ psutil_net_if_addrs(PyObject *self, PyObject *args) {
4d5d90
                     goto error;
4d5d90
                 if (PyList_Append(py_retlist, py_tuple))
4d5d90
                     goto error;
4d5d90
-                Py_DECREF(py_tuple);
4d5d90
-                Py_DECREF(py_address);
4d5d90
-                Py_DECREF(py_netmask);
4d5d90
+                Py_CLEAR(py_tuple);
4d5d90
+                Py_CLEAR(py_address);
4d5d90
+                Py_CLEAR(py_netmask);
4d5d90
 
4d5d90
                 pUnicast = pUnicast->Next;
4d5d90
             }
4d5d90
         }
4d5d90
-        Py_DECREF(py_nic_name);
4d5d90
+        Py_CLEAR(py_nic_name);
4d5d90
         pCurrAddresses = pCurrAddresses->Next;
4d5d90
     }
4d5d90
 
4d5d90
@@ -3351,8 +3351,8 @@ psutil_net_if_stats(PyObject *self, PyObject *args) {
4d5d90
             goto error;
4d5d90
         if (PyDict_SetItem(py_retdict, py_nic_name, py_ifc_info))
4d5d90
             goto error;
4d5d90
-        Py_DECREF(py_nic_name);
4d5d90
-        Py_DECREF(py_ifc_info);
4d5d90
+        Py_CLEAR(py_nic_name);
4d5d90
+        Py_CLEAR(py_ifc_info);
4d5d90
     }
4d5d90
 
4d5d90
     free(pIfTable);