bpo-36763: Remove _PyCoreConfig.dll_path (GH-13402)

This commit is contained in:
Victor Stinner 2019-05-18 04:17:01 +02:00 committed by GitHub
parent bab0db6076
commit 410759fba8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 15 additions and 41 deletions

View File

@ -353,9 +353,6 @@ typedef struct {
wchar_t *base_prefix; /* sys.base_prefix */
wchar_t *exec_prefix; /* sys.exec_prefix */
wchar_t *base_exec_prefix; /* sys.base_exec_prefix */
#ifdef MS_WINDOWS
wchar_t *dll_path; /* Windows DLL path */
#endif
/* --- Parameter only used by Py_Main() ---------- */

View File

@ -53,6 +53,10 @@ PyAPI_FUNC(int) _Py_FindEnvConfigValue(
wchar_t *value,
size_t value_size);
#ifdef MS_WINDOWS
extern wchar_t* _Py_GetDLLPath(void);
#endif
#ifdef __cplusplus
}
#endif

View File

@ -369,7 +369,6 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
'legacy_windows_fs_encoding': 0,
})
DEFAULT_CORE_CONFIG.update({
'dll_path': GET_DEFAULT_CONFIG,
'legacy_windows_stdio': 0,
})
@ -466,8 +465,6 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
'filesystem_errors': sys.getfilesystemencodeerrors(),
'module_search_paths': core_config['module_search_paths'],
}
if sys.platform == 'win32':
data['dll_path'] = core_config['dll_path']
data = json.dumps(data)
data = data.encode('utf-8')

View File

@ -508,8 +508,8 @@ done:
#endif /* Py_ENABLE_SHARED */
static _PyInitError
get_dll_path(PyCalculatePath *calculate, _PyPathConfig *config)
wchar_t*
_Py_GetDLLPath(void)
{
wchar_t dll_path[MAXPATHLEN+1];
memset(dll_path, 0, sizeof(dll_path));
@ -525,11 +525,7 @@ get_dll_path(PyCalculatePath *calculate, _PyPathConfig *config)
dll_path[0] = 0;
#endif
config->dll_path = _PyMem_RawWcsdup(dll_path);
if (config->dll_path == NULL) {
return _Py_INIT_NO_MEMORY();
}
return _Py_INIT_OK();
return _PyMem_RawWcsdup(dll_path);
}
@ -956,9 +952,11 @@ calculate_path_impl(const _PyCoreConfig *core_config,
{
_PyInitError err;
err = get_dll_path(calculate, config);
if (_Py_INIT_FAILED(err)) {
return err;
assert(config->dll_path == NULL);
config->dll_path = _Py_GetDLLPath();
if (config->dll_path == NULL) {
return _Py_INIT_NO_MEMORY();
}
err = get_program_full_path(core_config, calculate, config);

View File

@ -531,9 +531,6 @@ _PyCoreConfig_Clear(_PyCoreConfig *config)
CLEAR(config->prefix);
CLEAR(config->base_prefix);
CLEAR(config->exec_prefix);
#ifdef MS_WINDOWS
CLEAR(config->dll_path);
#endif
CLEAR(config->base_exec_prefix);
CLEAR(config->filesystem_encoding);
@ -761,9 +758,6 @@ _PyCoreConfig_Copy(_PyCoreConfig *config, const _PyCoreConfig *config2)
COPY_WSTR_ATTR(prefix);
COPY_WSTR_ATTR(base_prefix);
COPY_WSTR_ATTR(exec_prefix);
#ifdef MS_WINDOWS
COPY_WSTR_ATTR(dll_path);
#endif
COPY_WSTR_ATTR(base_exec_prefix);
COPY_ATTR(site_import);
@ -864,9 +858,6 @@ _PyCoreConfig_AsDict(const _PyCoreConfig *config)
SET_ITEM_WSTR(base_prefix);
SET_ITEM_WSTR(exec_prefix);
SET_ITEM_WSTR(base_exec_prefix);
#ifdef MS_WINDOWS
SET_ITEM_WSTR(dll_path);
#endif
SET_ITEM_INT(site_import);
SET_ITEM_INT(bytes_warning);
SET_ITEM_INT(inspect);
@ -2355,9 +2346,6 @@ _PyCoreConfig_Read(_PyCoreConfig *config)
assert(config->base_prefix != NULL);
assert(config->exec_prefix != NULL);
assert(config->base_exec_prefix != NULL);
#ifdef MS_WINDOWS
assert(config->dll_path != NULL);
#endif
}
assert(config->filesystem_encoding != NULL);
assert(config->filesystem_errors != NULL);

View File

@ -214,7 +214,8 @@ _PyCoreConfig_SetPathConfig(const _PyCoreConfig *core_config)
goto no_memory;
}
#ifdef MS_WINDOWS
if (copy_wstr(&path_config.dll_path, core_config->dll_path) < 0) {
path_config.dll_path = _Py_GetDLLPath();
if (path_config.dll_path == NULL) {
goto no_memory;
}
#endif
@ -322,14 +323,6 @@ _PyCoreConfig_CalculatePathConfig(_PyCoreConfig *config)
}
}
#ifdef MS_WINDOWS
if (config->dll_path == NULL) {
if (copy_wstr(&config->dll_path, path_config.dll_path) < 0) {
goto no_memory;
}
}
#endif
if (path_config.isolated != -1) {
config->isolated = path_config.isolated;
}
@ -356,9 +349,6 @@ _PyCoreConfig_InitPathConfig(_PyCoreConfig *config)
if (!config->use_module_search_paths
|| (config->executable == NULL)
|| (config->prefix == NULL)
#ifdef MS_WINDOWS
|| (config->dll_path == NULL)
#endif
|| (config->exec_prefix == NULL))
{
_PyInitError err = _PyCoreConfig_CalculatePathConfig(config);
@ -435,7 +425,7 @@ Py_SetPath(const wchar_t *path)
new_config.exec_prefix = _PyMem_RawWcsdup(L"");
alloc_error |= (new_config.exec_prefix == NULL);
#ifdef MS_WINDOWS
new_config.dll_path = _PyMem_RawWcsdup(L"");
new_config.dll_path = _Py_GetDLLPath();
alloc_error |= (new_config.dll_path == NULL);
#endif
new_config.module_search_path = _PyMem_RawWcsdup(path);