summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2003-09-04 18:45:59 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2003-09-04 18:45:59 (GMT)
commite81e9b1d3be5c2197235e3dc130c41f18a42edf7 (patch)
treefa072c4c5e85547f76c696f8f22a7541e3edcd5f /Python
parentef36537b81306fa89dfb75a58b209c64126998d0 (diff)
downloadcpython-e81e9b1d3be5c2197235e3dc130c41f18a42edf7.zip
cpython-e81e9b1d3be5c2197235e3dc130c41f18a42edf7.tar.gz
cpython-e81e9b1d3be5c2197235e3dc130c41f18a42edf7.tar.bz2
Patch #794826: Add __file__ in dynamically loaded modules for multiple
interpreters. Fixes #698282. Will backport to 2.3.
Diffstat (limited to 'Python')
-rw-r--r--Python/importdl.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/Python/importdl.c b/Python/importdl.c
index c2400f7..9c325e4 100644
--- a/Python/importdl.c
+++ b/Python/importdl.c
@@ -54,8 +54,6 @@ _PyImport_LoadDynamicModule(char *name, char *pathname, FILE *fp)
_Py_PackageContext = oldcontext;
if (PyErr_Occurred())
return NULL;
- if (_PyImport_FixupExtension(name, pathname) == NULL)
- return NULL;
m = PyDict_GetItemString(PyImport_GetModuleDict(), name);
if (m == NULL) {
@@ -66,6 +64,9 @@ _PyImport_LoadDynamicModule(char *name, char *pathname, FILE *fp)
/* Remember the filename as the __file__ attribute */
if (PyModule_AddStringConstant(m, "__file__", pathname) < 0)
PyErr_Clear(); /* Not important enough to report */
+
+ if (_PyImport_FixupExtension(name, pathname) == NULL)
+ return NULL;
if (Py_VerboseFlag)
PySys_WriteStderr(
"import %s # dynamically loaded from %s\n",