From b5fd9ad05e0f15f8272b8f1b829af22077230584 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 14 Dec 2017 02:20:52 +0100 Subject: bpo-32030: Rewrite _PyMainInterpreterConfig (#4854) _PyMainInterpreterConfig now contains Python objects, whereas _PyCoreConfig contains wchar_t* strings. Core config: * Rename _PyMainInterpreterConfig_ReadEnv() to _PyCoreConfig_ReadEnv() * Move 3 strings from _PyMainInterpreterConfig to _PyCoreConfig: module_search_path_env, home, program_name. * Add _PyCoreConfig_Clear() * _PyPathConfig_Calculate() now takes core config rather than main config * _PyMainInterpreterConfig_Read() now requires also a core config Main config: * Add _PyMainInterpreterConfig.module_search_path: sys.path list * Add _PyMainInterpreterConfig.argv: sys.argv list * _PyMainInterpreterConfig_Read() now computes module_search_path --- Python/pathconfig.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'Python/pathconfig.c') diff --git a/Python/pathconfig.c b/Python/pathconfig.c index b17ae822a7..748084ba44 100644 --- a/Python/pathconfig.c +++ b/Python/pathconfig.c @@ -46,7 +46,7 @@ _PyPathConfig_Clear(_PyPathConfig *config) /* Initialize paths for Py_GetPath(), Py_GetPrefix(), Py_GetExecPrefix() and Py_GetProgramFullPath() */ _PyInitError -_PyPathConfig_Init(const _PyMainInterpreterConfig *main_config) +_PyPathConfig_Init(const _PyCoreConfig *core_config) { if (_Py_path_config.module_search_path) { /* Already initialized */ @@ -61,15 +61,15 @@ _PyPathConfig_Init(const _PyMainInterpreterConfig *main_config) /* Calculate program_full_path, prefix, exec_prefix (Unix) or dll_path (Windows), and module_search_path */ - err = _PyPathConfig_Calculate(&new_config, main_config); + err = _PyPathConfig_Calculate(&new_config, core_config); if (_Py_INIT_FAILED(err)) { _PyPathConfig_Clear(&new_config); goto done; } - /* Copy home and program_name from main_config */ - if (main_config->home != NULL) { - new_config.home = _PyMem_RawWcsdup(main_config->home); + /* Copy home and program_name from core_config */ + if (core_config->home != NULL) { + new_config.home = _PyMem_RawWcsdup(core_config->home); if (new_config.home == NULL) { err = _Py_INIT_NO_MEMORY(); goto done; @@ -79,7 +79,7 @@ _PyPathConfig_Init(const _PyMainInterpreterConfig *main_config) new_config.home = NULL; } - new_config.program_name = _PyMem_RawWcsdup(main_config->program_name); + new_config.program_name = _PyMem_RawWcsdup(core_config->program_name); if (new_config.program_name == NULL) { err = _Py_INIT_NO_MEMORY(); goto done; @@ -105,14 +105,14 @@ pathconfig_global_init(void) } _PyInitError err; - _PyMainInterpreterConfig config = _PyMainInterpreterConfig_INIT; + _PyCoreConfig config = _PyCoreConfig_INIT; - err = _PyMainInterpreterConfig_ReadEnv(&config); + err = _PyCoreConfig_ReadEnv(&config); if (_Py_INIT_FAILED(err)) { goto error; } - err = _PyMainInterpreterConfig_Read(&config); + err = _PyCoreConfig_Read(&config); if (_Py_INIT_FAILED(err)) { goto error; } @@ -122,11 +122,11 @@ pathconfig_global_init(void) goto error; } - _PyMainInterpreterConfig_Clear(&config); + _PyCoreConfig_Clear(&config); return; error: - _PyMainInterpreterConfig_Clear(&config); + _PyCoreConfig_Clear(&config); _Py_FatalInitError(err); } -- cgit v1.2.1