summaryrefslogtreecommitdiff
path: root/Python
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2018-11-22 16:11:15 +0100
committerGitHub <noreply@github.com>2018-11-22 16:11:15 +0100
commita5194115733f6ca8fc1ddbee43eabbde536900e6 (patch)
treedf3d28fe96046fc8bf48acca76617ecb94c7da18 /Python
parent18f3327d9a99163a658697465eb00c31f86535eb (diff)
downloadcpython-git-a5194115733f6ca8fc1ddbee43eabbde536900e6.tar.gz
Revert "bpo-35239: _PySys_EndInit() copies module_search_path (GH-10532)" (GH-10660)
This reverts commit d2be9a5c13221fb84c2221bbfd93efac6111e697.
Diffstat (limited to 'Python')
-rw-r--r--Python/pylifecycle.c4
-rw-r--r--Python/sysmodule.c26
2 files changed, 5 insertions, 25 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 7eaf376d1a..86f95de833 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -967,8 +967,8 @@ _Py_InitializeMainInterpreter(PyInterpreterState *interp,
}
/* Initialize warnings. */
- PyObject *warnoptions = PySys_GetObject("warnoptions");
- if (warnoptions != NULL && PyList_Size(warnoptions) > 0)
+ if (interp->config.warnoptions != NULL &&
+ PyList_Size(interp->config.warnoptions) > 0)
{
PyObject *warnings_module = PyImport_ImportModule("warnings");
if (warnings_module == NULL) {
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 48d8fa4c6e..498fa91fcc 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -2464,20 +2464,7 @@ _PySys_EndInit(PyObject *sysdict, _PyMainInterpreterConfig *config)
assert(config->exec_prefix != NULL);
assert(config->base_exec_prefix != NULL);
-#define COPY_LIST(KEY, ATTR) \
- do { \
- assert(PyList_Check(config->ATTR)); \
- PyObject *list = PyList_GetSlice(config->ATTR, \
- 0, PyList_GET_SIZE(config->ATTR)); \
- if (list == NULL) { \
- return -1; \
- } \
- SET_SYS_FROM_STRING_BORROW(KEY, list); \
- Py_DECREF(list); \
- } while (0)
-
- COPY_LIST("path", module_search_path);
-
+ SET_SYS_FROM_STRING_BORROW("path", config->module_search_path);
SET_SYS_FROM_STRING_BORROW("executable", config->executable);
SET_SYS_FROM_STRING_BORROW("prefix", config->prefix);
SET_SYS_FROM_STRING_BORROW("base_prefix", config->base_prefix);
@@ -2488,19 +2475,12 @@ _PySys_EndInit(PyObject *sysdict, _PyMainInterpreterConfig *config)
SET_SYS_FROM_STRING_BORROW("argv", config->argv);
}
if (config->warnoptions != NULL) {
- COPY_LIST("warnoptions", warnoptions);
+ SET_SYS_FROM_STRING_BORROW("warnoptions", config->warnoptions);
}
if (config->xoptions != NULL) {
- PyObject *dict = PyDict_Copy(config->xoptions);
- if (dict == NULL) {
- return -1;
- }
- SET_SYS_FROM_STRING_BORROW("_xoptions", dict);
- Py_DECREF(dict);
+ SET_SYS_FROM_STRING_BORROW("_xoptions", config->xoptions);
}
-#undef COPY_LIST
-
/* Set flags to their final values */
SET_SYS_FROM_STRING_INT_RESULT("flags", make_flags());
/* prevent user from creating new instances */