Fix a memory leak in reloading extension modules #3667
Reviewer: Barry Warsaw
diff --git a/Python/import.c b/Python/import.c
index 8159b5e..d87d751 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -612,7 +612,6 @@
mod = PyImport_AddModule(name);
if (mod == NULL)
return NULL;
- Py_INCREF(mod);
mdict = PyModule_GetDict(mod);
if (mdict == NULL)
return NULL;
@@ -626,6 +625,7 @@
if (mod == NULL)
return NULL;
PyDict_SetItemString(PyImport_GetModuleDict(), name, mod);
+ Py_DECREF(mod);
}
if (_PyState_AddModule(mod, def) < 0) {
PyDict_DelItemString(PyImport_GetModuleDict(), name);