mirror of
https://github.com/python/cpython.git
synced 2025-07-08 03:45:36 +00:00
bpo-36763: Add _Py_InitializeMain() (GH-13362)
* Add a private _Py_InitializeMain() function. * Add again _PyCoreConfig._init_main. * _Py_InitializeFromConfig() now uses _init_main to decide if _Py_InitializeMainInterpreter() should be called. * _PyCoreConfig: rename _frozen to pathconfig_warnings, its value is now the opposite of Py_FrozenFlag. * Add an unit test for _init_main=0 and _Py_InitializeMain().
This commit is contained in:
parent
ae239f6b06
commit
9ef5dcaa0b
10 changed files with 130 additions and 40 deletions
|
@ -1046,6 +1046,15 @@ run_eval_code_obj(PyCodeObject *co, PyObject *globals, PyObject *locals)
|
|||
* Py_Main() based one.
|
||||
*/
|
||||
_Py_UnhandledKeyboardInterrupt = 0;
|
||||
|
||||
/* Set globals['__builtins__'] if it doesn't exist */
|
||||
if (globals != NULL && PyDict_GetItemString(globals, "__builtins__") == NULL) {
|
||||
PyInterpreterState *interp = _PyInterpreterState_Get();
|
||||
if (PyDict_SetItemString(globals, "__builtins__", interp->builtins) < 0) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
v = PyEval_EvalCode((PyObject*)co, globals, locals);
|
||||
if (!v && PyErr_Occurred() == PyExc_KeyboardInterrupt) {
|
||||
_Py_UnhandledKeyboardInterrupt = 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue