[Python-checkins] cpython (3.2): Fix the builtin module initialization code to store the init function for
antoine.pitrou
python-checkins at python.org
Wed Jan 18 20:23:41 CET 2012
http://hg.python.org/cpython/rev/f0cbceef47c3
changeset: 74504:f0cbceef47c3
branch: 3.2
parent: 74502:93de14a05172
user: Antoine Pitrou <solipsis at pitrou.net>
date: Wed Jan 18 20:16:09 2012 +0100
summary:
Fix the builtin module initialization code to store the init function for future reinitialization.
files:
Misc/NEWS | 3 +++
Python/import.c | 4 ++++
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@
Core and Builtins
-----------------
+- Fix the builtin module initialization code to store the init function for
+ future reinitialization.
+
- Issue #13629: Renumber the tokens in token.h so that they match the indexes
into _PyParser_TokenNames.
diff --git a/Python/import.c b/Python/import.c
--- a/Python/import.c
+++ b/Python/import.c
@@ -2169,6 +2169,7 @@
for (p = PyImport_Inittab; p->name != NULL; p++) {
PyObject *mod;
+ PyModuleDef *def;
if (strcmp(name, p->name) == 0) {
if (p->initfunc == NULL) {
PyErr_Format(PyExc_ImportError,
@@ -2181,6 +2182,9 @@
mod = (*p->initfunc)();
if (mod == 0)
return -1;
+ /* Remember pointer to module init function. */
+ def = PyModule_GetDef(mod);
+ def->m_base.m_init = p->initfunc;
if (_PyImport_FixupBuiltin(mod, name) < 0)
return -1;
/* FixupExtension has put the module into sys.modules,
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list