mirror of
https://github.com/python/cpython.git
synced 2025-07-19 01:05:26 +00:00
Fix for SF bug #1029475 : reload() doesn't work with PEP 302 loaders.
This commit is contained in:
parent
f4aca755bc
commit
7ec642a4d2
2 changed files with 26 additions and 6 deletions
|
@ -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) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue