diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2021-09-28 18:18:28 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-28 18:18:28 (GMT) |
commit | 0c50b8c0b8274d54d6b71ed7bd21057d3642f138 (patch) | |
tree | ed77a5e7e69302e88349da50c5473c1aa7397d00 /Modules/getpath.c | |
parent | 84975146a7ce64f1d50dcec8311b7f7188a5c962 (diff) | |
download | cpython-0c50b8c0b8274d54d6b71ed7bd21057d3642f138.zip cpython-0c50b8c0b8274d54d6b71ed7bd21057d3642f138.tar.gz cpython-0c50b8c0b8274d54d6b71ed7bd21057d3642f138.tar.bz2 |
bpo-45211: Remember the stdlib dir during startup. (gh-28586)
During runtime startup we figure out the stdlib dir but currently throw that information away. This change preserves it and exposes it via PyConfig.stdlib_dir, _Py_GetStdlibDir(), and sys._stdlib_dir.
https://bugs.python.org/issue45211
Diffstat (limited to 'Modules/getpath.c')
-rw-r--r-- | Modules/getpath.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Modules/getpath.c b/Modules/getpath.c index de1c6e3..56775e9 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c @@ -1492,6 +1492,16 @@ calculate_path(PyCalculatePath *calculate, _PyPathConfig *pathconfig) } } + if (pathconfig->stdlib_dir == NULL) { + if (calculate->prefix_found) { + /* This must be done *before* calculate_set_prefix() is called. */ + pathconfig->stdlib_dir = _PyMem_RawWcsdup(calculate->prefix); + if (pathconfig->stdlib_dir == NULL) { + return _PyStatus_NO_MEMORY(); + } + } + } + if (pathconfig->prefix == NULL) { status = calculate_set_prefix(calculate, pathconfig); if (_PyStatus_EXCEPTION(status)) { |