Fix for SF bug #1029475 : reload() doesn't work with PEP 302 loaders.

This commit is contained in:
Phillip J. Eby 2004-09-23 04:37:36 +00:00
parent f4aca755bc
commit 7ec642a4d2
2 changed files with 26 additions and 6 deletions

View file

@ -2252,7 +2252,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;
@ -2295,11 +2295,17 @@ 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;
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) {