bpo-38858: Add pycore_interp_init() code to factorize code (GH-17483)

Add a new pycore_interp_init() function called by new_interpreter()
and pyinit_config().
This commit is contained in:
Victor Stinner 2019-12-06 03:37:07 +01:00 committed by GitHub
parent 81fe5bd3d7
commit d863ade0c7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -701,6 +701,31 @@ pycore_init_import_warnings(PyThreadState *tstate, PyObject *sysmod)
}
static PyStatus
pycore_interp_init(PyThreadState *tstate)
{
PyStatus status;
status = pycore_init_types(tstate);
if (_PyStatus_EXCEPTION(status)) {
return status;
}
PyObject *sysmod;
status = _PySys_Create(tstate, &sysmod);
if (_PyStatus_EXCEPTION(status)) {
return status;
}
status = pycore_init_builtins(tstate);
if (_PyStatus_EXCEPTION(status)) {
return status;
}
return pycore_init_import_warnings(tstate, sysmod);
}
static PyStatus
pyinit_config(_PyRuntimeState *runtime,
PyThreadState **tstate_p,
@ -721,23 +746,7 @@ pyinit_config(_PyRuntimeState *runtime,
config = &tstate->interp->config;
*tstate_p = tstate;
status = pycore_init_types(tstate);
if (_PyStatus_EXCEPTION(status)) {
return status;
}
PyObject *sysmod;
status = _PySys_Create(tstate, &sysmod);
if (_PyStatus_EXCEPTION(status)) {
return status;
}
status = pycore_init_builtins(tstate);
if (_PyStatus_EXCEPTION(status)) {
return status;
}
status = pycore_init_import_warnings(tstate, sysmod);
status = pycore_interp_init(tstate);
if (_PyStatus_EXCEPTION(status)) {
return status;
}
@ -1549,25 +1558,8 @@ new_interpreter(PyThreadState **tstate_p)
if (_PyStatus_EXCEPTION(status)) {
goto error;
}
config = &interp->config;
status = pycore_init_types(tstate);
if (_PyStatus_EXCEPTION(status)) {
goto error;
}
PyObject *sysmod;
status = _PySys_Create(tstate, &sysmod);
if (_PyStatus_EXCEPTION(status)) {
return status;
}
status = pycore_init_builtins(tstate);
if (_PyStatus_EXCEPTION(status)) {
goto error;
}
status = pycore_init_import_warnings(tstate, sysmod);
status = pycore_interp_init(tstate);
if (_PyStatus_EXCEPTION(status)) {
goto error;
}