Undo half of the previous change :-(
Setting interp->builtins to the __builtin__ module instead of to its
dictionary had the unfortunate side effect of always running in
restricted execution mode :-(
I will check in a different way of setting __main__.__builtins__ to
the __builtin__ module later.
Also, there was a typo -- a comment was unfinished, and as a result
some finalizations were not being executed.
In Bart Simpson style,
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 15161f8..381c987 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -77,7 +77,6 @@
int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */
int Py_NoSiteFlag; /* Suppress 'import site' */
int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c */
-int Py_UsingLocale = 0; /* needed by compile.c, modified by localemodule */
static int initialized = 0;
@@ -134,8 +133,8 @@
bimod = _PyBuiltin_Init_1();
if (bimod == NULL)
Py_FatalError("Py_Initialize: can't initialize __builtin__");
- Py_INCREF(bimod);
- interp->builtins = bimod;
+ interp->builtins = PyModule_GetDict(bimod);
+ Py_INCREF(interp->builtins);
sysmod = _PySys_Init();
if (sysmod == NULL)
@@ -148,7 +147,7 @@
interp->modules);
/* phase 2 of builtins */
- _PyBuiltin_Init_2(PyModule_GetDict(bimod));
+ _PyBuiltin_Init_2(interp->builtins);
_PyImport_FixupExtension("__builtin__", "__builtin__");
_PyImport_Init();
@@ -199,7 +198,7 @@
/* Destroy all modules */
PyImport_Cleanup();
- /* Delete current thread
+ /* Delete current thread */
PyInterpreterState_Clear(interp);
PyThreadState_Swap(NULL);
PyInterpreterState_Delete(interp);
@@ -287,8 +286,8 @@
bimod = _PyImport_FindExtension("__builtin__", "__builtin__");
if (bimod != NULL) {
- Py_INCREF(bimod);
- interp->builtins = bimod;
+ interp->builtins = PyModule_GetDict(bimod);
+ Py_INCREF(interp->builtins);
}
sysmod = _PyImport_FindExtension("sys", "sys");
if (bimod != NULL && sysmod != NULL) {