mirror of
https://github.com/AdaCore/cpython.git
synced 2026-02-12 12:57:15 -08:00
Fix for SF bug #1029475 : reload() doesn't work with PEP 302 loaders.
(Backport to 2.3 maintenance branch.)
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user