diff Python/import.c @ 39008:9e821435a612 legacy-trunk

Fix refleaks reported by Shane Hathaway in SF patch #1515361. This change contains only the changes related to leaking the copy variable.
author Neal Norwitz <nnorwitz@gmail.com>
date Thu, 06 Jul 2006 04:28:59 +0000
parents 9268c30782c0
children 7182c2775c1e
line wrap: on
line diff
--- a/Python/import.c	Wed Jul 05 15:50:05 2006 +0000
+++ b/Python/import.c	Thu Jul 06 04:28:59 2006 +0000
@@ -1237,8 +1237,10 @@
 
 			importer = get_path_importer(path_importer_cache,
 						     path_hooks, v);
-			if (importer == NULL)
+			if (importer == NULL) {
+				Py_XDECREF(copy);
 				return NULL;
+			}
 			/* Note: importer is a borrowed reference */
 			if (importer == Py_False) {
 				/* Cached as not being a valid dir. */
@@ -1273,6 +1275,7 @@
 				loader = PyObject_CallMethod(importer,
 							     "find_module",
 							     "s", fullname);
+				Py_XDECREF(copy);
 				if (loader == NULL)
 					return NULL;  /* error */
 				if (loader != Py_None) {
@@ -1281,7 +1284,6 @@
 					return &importhookdescr;
 				}
 				Py_DECREF(loader);
-				Py_XDECREF(copy);
 				continue;
 			}
 		}