summaryrefslogtreecommitdiffstats
path: root/Modules/getpath.c
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2021-09-28 18:18:28 (GMT)
committerGitHub <noreply@github.com>2021-09-28 18:18:28 (GMT)
commit0c50b8c0b8274d54d6b71ed7bd21057d3642f138 (patch)
treeed77a5e7e69302e88349da50c5473c1aa7397d00 /Modules/getpath.c
parent84975146a7ce64f1d50dcec8311b7f7188a5c962 (diff)
downloadcpython-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.c10
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)) {