]> granicus.if.org Git - python/commit
bpo-34170: Rework _PyCoreConfig_Read() to avoid side effect (GH-8353)
authorVictor Stinner <vstinner@redhat.com>
Sat, 21 Jul 2018 00:06:16 +0000 (02:06 +0200)
committerGitHub <noreply@github.com>
Sat, 21 Jul 2018 00:06:16 +0000 (02:06 +0200)
commitb1147e43daeb3c51a63056b489e8d868404d4e22
treec5716fcfca0f90abbc21b291cd51b0ae022759c4
parent94487d45707772723ef19e86700a40a12743baa1
bpo-34170: Rework _PyCoreConfig_Read() to avoid side effect (GH-8353)

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.
Include/internal/pystate.h
Include/pylifecycle.h
Include/pystate.h
Modules/getpath.c
Modules/main.c
PC/getpathp.c
Python/pathconfig.c
Python/pylifecycle.c