mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
bpo-36142: PYTHONMALLOC overrides PYTHONDEV (GH-12191)
bpo-34247, bpo-36142: The PYTHONMALLOC environment variable has the priority over PYTHONDEV env var and "-X dev" command line option. For example, PYTHONMALLOC=malloc PYTHONDEVMODE=1 sets the memory allocators to "malloc" (and not to "debug"). Add an unit test.
This commit is contained in:
parent
01e0f439f5
commit
25d13f37aa
3 changed files with 45 additions and 21 deletions
|
@ -445,14 +445,11 @@ preconfig_read(_PyPreConfig *config, const _PyPreCmdline *cmdline)
|
|||
}
|
||||
|
||||
/* allocator */
|
||||
if (config->dev_mode && config->allocator == NULL) {
|
||||
config->allocator = _PyMem_RawStrdup("debug");
|
||||
if (config->allocator == NULL) {
|
||||
return _Py_INIT_NO_MEMORY();
|
||||
}
|
||||
}
|
||||
|
||||
if (config->allocator == NULL) {
|
||||
/* bpo-34247. The PYTHONMALLOC environment variable has the priority
|
||||
over PYTHONDEV env var and "-X dev" command line option.
|
||||
For example, PYTHONMALLOC=malloc PYTHONDEVMODE=1 sets the memory
|
||||
allocators to "malloc" (and not to "debug"). */
|
||||
const char *allocator = _PyPreConfig_GetEnv(config, "PYTHONMALLOC");
|
||||
if (allocator) {
|
||||
config->allocator = _PyMem_RawStrdup(allocator);
|
||||
|
@ -462,6 +459,13 @@ preconfig_read(_PyPreConfig *config, const _PyPreCmdline *cmdline)
|
|||
}
|
||||
}
|
||||
|
||||
if (config->dev_mode && config->allocator == NULL) {
|
||||
config->allocator = _PyMem_RawStrdup("debug");
|
||||
if (config->allocator == NULL) {
|
||||
return _Py_INIT_NO_MEMORY();
|
||||
}
|
||||
}
|
||||
|
||||
assert(config->coerce_c_locale >= 0);
|
||||
assert(config->utf8_mode >= 0);
|
||||
assert(config->isolated >= 0);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue