diff options
Diffstat (limited to 'Python/import.c')
-rw-r--r-- | Python/import.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/Python/import.c b/Python/import.c index 11aa2b4..3ca10be 100644 --- a/Python/import.c +++ b/Python/import.c @@ -2310,7 +2310,7 @@ PyObject * PyImport_ReloadModule(PyObject *m) { PyObject *modules = PyImport_GetModuleDict(); - PyObject *path = NULL; + PyObject *path = NULL, *loader = NULL; char *name, *subname; char buf[MAXPATHLEN+1]; struct filedescr *fdp; @@ -2352,11 +2352,14 @@ PyImport_ReloadModule(PyObject *m) PyErr_Clear(); } buf[0] = '\0'; - fdp = find_module(name, subname, path, buf, MAXPATHLEN+1, &fp, NULL); + fdp = find_module(name, subname, path, buf, MAXPATHLEN+1, &fp, &loader); Py_XDECREF(path); - if (fdp == NULL) + if (fdp == NULL) { + Py_XDECREF(loader); return NULL; - m = load_module(name, fp, buf, fdp->type, NULL); + } + m = load_module(name, fp, buf, fdp->type, loader); + Py_XDECREF(loader); if (fp) fclose(fp); return m; |