• Victor Stinner's avatar
    bpo-34170: Rework _PyCoreConfig_Read() to avoid side effect (GH-8353) · b1147e43
    Victor Stinner authored
    Rework _PyCoreConfig_Read() function which *reads* core configuration
    to not *modify* the path configuration.
    
    A new _PyCoreConfig_SetPathConfig() function now recreates the path
    configuration from the core configuration. This function is now
    called very late in _Py_InitializeCore(), just before calling
    initimport().
    
    Changes:
    
    * Add _PyCoreConfig.dll_path
    * Py_SetPath() now fails with a fatal python error on memory
       allocation failure.
    * Rename _PyPathConfig_Calculate() to _PyPathConfig_Calculate_impl()
    * Replace _PyPathConfig_Init() with _PyPathConfig_Calculate(): the
      function now requires a _PyPathConfig
    * Add _PyPathConfig_SetGlobal() to set the _Py_path_config global
      variable.
    * Add _PyCoreConfig_InitPathConfig(): compute the path configuration
    * Add _PyCoreConfig_SetPathConfig(): set path configuration from core
      configuration
    * Rename wstrlist_append() to _Py_wstrlist_append()
    * _Py_wstrlist_append() now handles integer overflow.
    b1147e43
pylifecycle.h 7.06 KB