mirror of https://github.com/python/cpython.git
Fix the builtin module initialization code to store the init function for future reinitialization.
This commit is contained in:
parent
0c60381749
commit
6c40eb7f42
|
@ -10,6 +10,9 @@ What's New in Python 3.2.3?
|
||||||
Core and Builtins
|
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
|
- Issue #13629: Renumber the tokens in token.h so that they match the indexes
|
||||||
into _PyParser_TokenNames.
|
into _PyParser_TokenNames.
|
||||||
|
|
||||||
|
|
|
@ -2169,6 +2169,7 @@ init_builtin(char *name)
|
||||||
|
|
||||||
for (p = PyImport_Inittab; p->name != NULL; p++) {
|
for (p = PyImport_Inittab; p->name != NULL; p++) {
|
||||||
PyObject *mod;
|
PyObject *mod;
|
||||||
|
PyModuleDef *def;
|
||||||
if (strcmp(name, p->name) == 0) {
|
if (strcmp(name, p->name) == 0) {
|
||||||
if (p->initfunc == NULL) {
|
if (p->initfunc == NULL) {
|
||||||
PyErr_Format(PyExc_ImportError,
|
PyErr_Format(PyExc_ImportError,
|
||||||
|
@ -2181,6 +2182,9 @@ init_builtin(char *name)
|
||||||
mod = (*p->initfunc)();
|
mod = (*p->initfunc)();
|
||||||
if (mod == 0)
|
if (mod == 0)
|
||||||
return -1;
|
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)
|
if (_PyImport_FixupBuiltin(mod, name) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
/* FixupExtension has put the module into sys.modules,
|
/* FixupExtension has put the module into sys.modules,
|
||||||
|
|
Loading…
Reference in New Issue