From abb296712fe7ad6b4b39eacf68291beda91d4814 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Thu, 4 Sep 2003 18:46:39 +0000 Subject: [PATCH] Patch #794826: Add __file__ in dynamically loaded modules for multiple interpreters. Fixes #698282. --- Misc/NEWS | 2 ++ Python/importdl.c | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Misc/NEWS b/Misc/NEWS index 214eb3542225..59959debc114 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -20,6 +20,8 @@ Core and builtins Extension modules ----------------- +- Bug #698282: Add __file__ to dynamic modules in multiple interpreters. + - Patch #798145: Return correct information from nl_langinfo(RADIXCHAR). - Bug #797447: Correct confusing error message for unsupported locales. diff --git a/Python/importdl.c b/Python/importdl.c index c2400f7a3ced..9c325e447d3f 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", -- 2.47.3