Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-32030: Don't call _PyPathConfig_Fini() in Py_FinalizeEx() #4667

Merged
merged 1 commit into from
Dec 1, 2017
Merged

bpo-32030: Don't call _PyPathConfig_Fini() in Py_FinalizeEx() #4667

merged 1 commit into from
Dec 1, 2017

Conversation

vstinner
Copy link
Member

@vstinner vstinner commented Dec 1, 2017

Changes:

  • _PyPathConfig_Fini() cannot be called in Py_FinalizeEx().
    Py_Initialize() and Py_Finalize() can be called multiple times, but
    it must not "forget" parameters set by Py_SetProgramName(),
    Py_SetPath() or Py_SetPythonHome(), whereas _PyPathConfig_Fini()
    clear all these parameters.
  • config_get_program_name() and calculate_program_full_path() now
    also decode paths using Py_DecodeLocale() to use the
    surrogateescape error handler, rather than decoding using
    mbstowcs() which is strict.
  • Change _Py_CheckPython3() prototype: () => (void)
  • Truncate a few lines which were too long

https://bugs.python.org/issue32030

Changes:

* _PyPathConfig_Fini() cannot be called in Py_FinalizeEx().
  Py_Initialize() and Py_Finalize() can be called multiple times, but
  it must not "forget" parameters set by Py_SetProgramName(),
  Py_SetPath() or Py_SetPythonHome(), whereas _PyPathConfig_Fini()
  clear all these parameters.
* config_get_program_name() and calculate_program_full_path() now
  also decode paths using Py_DecodeLocale() to use the
  surrogateescape error handler, rather than decoding using
  mbstowcs() which is strict.
* Change _Py_CheckPython3() prototype: () => (void)
* Truncate a few lines which were too long
@vstinner vstinner requested a review from a team as a code owner December 1, 2017 18:49
@vstinner vstinner merged commit ebac19d into python:master Dec 1, 2017
@vstinner vstinner deleted the path_config4 branch December 1, 2017 19:09
serhiy-storchaka added a commit to serhiy-storchaka/cpython that referenced this pull request Dec 2, 2017
serhiy-storchaka added a commit that referenced this pull request Dec 2, 2017
… (#4681)

* Revert "bpo-32030: _PyPathConfig_Init() sets home and program_name (#4673)"

This reverts commit af5a895.

* Revert "bpo-32030: Fix config_get_program_name() on macOS (#4669)"

This reverts commit e23c06e.

* Revert "bpo-32030: Add Python/pathconfig.c (#4668)"

This reverts commit 0ea395a.

* Revert "bpo-32030: Don't call _PyPathConfig_Fini() in Py_FinalizeEx() (#4667)"

This reverts commit ebac19d.

* Revert "bpo-32030: Fix Py_GetPath(): init program_name (#4665)"

This reverts commit 9ac3d88.
vstinner added a commit that referenced this pull request Dec 4, 2017
…po-32030. (#4681)" (#4694)

* Revert "bpo-32197: Try to fix a compiler error on OS X introduced in bpo-32030. (#4681)"

This reverts commit 13badcb.

Re-apply commits:

* "bpo-32030: _PyPathConfig_Init() sets home and program_name (#4673)"
  commit af5a895.
* "bpo-32030: Fix config_get_program_name() on macOS (#4669)"
  commit e23c06e.
* "bpo-32030: Add Python/pathconfig.c (#4668)"
  commit 0ea395a.
* "bpo-32030: Don't call _PyPathConfig_Fini() in Py_FinalizeEx() (#4667)"
  commit ebac19d.
* "bpo-32030: Fix Py_GetPath(): init program_name (#4665)"
  commit 9ac3d88.

* Fix compilation error on macOS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants