Mercurial > cpython-lru_cache-weakref
diff Python/import.c @ 33542:d74ddcff0724 legacy-trunk
Fix for SF bug #1029475 : reload() doesn't work with PEP 302 loaders.
| author | Phillip J. Eby <pje@telecommunity.com> |
|---|---|
| date | Thu, 23 Sep 2004 04:37:36 +0000 |
| parents | 2b49b4a85d9e |
| children | bcafb68ad985 |
line wrap: on
line diff
--- a/Python/import.c Thu Sep 23 02:39:37 2004 +0000 +++ b/Python/import.c Thu Sep 23 04:37:36 2004 +0000 @@ -2252,7 +2252,7 @@ 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; @@ -2295,11 +2295,17 @@ 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; - newm = load_module(name, fp, buf, fdp->type, NULL); + } + + newm = load_module(name, fp, buf, fdp->type, loader); + Py_XDECREF(loader); + if (fp) fclose(fp); if (newm == NULL) {
