bpo-36301: Add _PyWstrList structure by vstinner · Pull Request #12343 · python/cpython (original) (raw)
Replace messy _Py_wstrlist_xxx() functions with a new clean
_PyWstrList structure and new _PyWstrList_xxx() functions.
Changes:
- Add _PyCoreConfig.use_module_search_paths to decide if
_PyCoreConfig.module_search_paths should be computed or not, to
support empty search path list. - _PyWstrList_Clear() sets length to 0 and items to NULL, whereas
_Py_wstrlist_clear() only freed memory. - _PyWstrList_Append() returns an int, whereas _Py_wstrlist_append()
returned _PyInitError. - _PyWstrList uses Py_ssize_t for the length, instead of int.
- Replace (int, wchar_t**) with _PyWstrList in:
- _PyPreConfig
- _PyCoreConfig
- _PyPreCmdline
- _PyCmdline
- Replace "int orig_argv; wchar_t **orig_argv;"
with "_PyWstrList orig_argv". - _PyCmdline and _PyPreCmdline now also copy wchar_argv.
- Rename _PyArgv_Decode() to _PyArgv_AsWstrList().
- PySys_SetArgvEx() now pass the fixed (argc, argv) to
_PyPathConfig_ComputeArgv0() (don't pass negative argc or NULL
argv).
https://bugs.python.org/issue36301
Replace messy _Py_wstrlist_xxx() functions with a new clean _PyWstrList structure and new _PyWstrList_xxx() functions.
Changes:
Add _PyCoreConfig.use_module_search_paths to decide if _PyCoreConfig.module_search_paths should be computed or not, to support empty search path list.
_PyWstrList_Clear() sets length to 0 and items to NULL, whereas _Py_wstrlist_clear() only freed memory.
_PyWstrList_Append() returns an int, whereas _Py_wstrlist_append() returned _PyInitError.
_PyWstrList uses Py_ssize_t for the length, instead of int.
Replace (int, wchar_t**) with _PyWstrList in:
- _PyPreConfig
- _PyCoreConfig
- _PyPreCmdline
- _PyCmdline
Replace "int orig_argv; wchar_t **orig_argv;" with "_PyWstrList orig_argv".
_PyCmdline and _PyPreCmdline now also copy wchar_argv.
Rename _PyArgv_Decode() to _PyArgv_AsWstrList().
PySys_SetArgvEx() now pass the fixed (argc, argv) to _PyPathConfig_ComputeArgv0() (don't pass negative argc or NULL argv).
Fix also compilation on Windows