mirror of
https://github.com/python/cpython.git
synced 2025-07-12 13:55:34 +00:00
Fix crash caused by 8c1385205a35
(thanks Arfrever for reporting).
This commit is contained in:
commit
4adb566ad7
1 changed files with 8 additions and 6 deletions
|
@ -576,6 +576,9 @@ Py_Finalize(void)
|
||||||
/* Destroy the database used by _PyImport_{Fixup,Find}Extension */
|
/* Destroy the database used by _PyImport_{Fixup,Find}Extension */
|
||||||
_PyImport_Fini();
|
_PyImport_Fini();
|
||||||
|
|
||||||
|
/* Cleanup typeobject.c's internal caches. */
|
||||||
|
_PyType_Fini();
|
||||||
|
|
||||||
/* unload faulthandler module */
|
/* unload faulthandler module */
|
||||||
_PyFaulthandler_Fini();
|
_PyFaulthandler_Fini();
|
||||||
|
|
||||||
|
@ -596,7 +599,7 @@ Py_Finalize(void)
|
||||||
_Py_PrintReferences(stderr);
|
_Py_PrintReferences(stderr);
|
||||||
#endif /* Py_TRACE_REFS */
|
#endif /* Py_TRACE_REFS */
|
||||||
|
|
||||||
/* Clear interpreter state */
|
/* Clear interpreter state and all thread states. */
|
||||||
PyInterpreterState_Clear(interp);
|
PyInterpreterState_Clear(interp);
|
||||||
|
|
||||||
/* Now we decref the exception classes. After this point nothing
|
/* Now we decref the exception classes. After this point nothing
|
||||||
|
@ -612,10 +615,6 @@ Py_Finalize(void)
|
||||||
_PyGILState_Fini();
|
_PyGILState_Fini();
|
||||||
#endif /* WITH_THREAD */
|
#endif /* WITH_THREAD */
|
||||||
|
|
||||||
/* Delete current thread */
|
|
||||||
PyThreadState_Swap(NULL);
|
|
||||||
PyInterpreterState_Delete(interp);
|
|
||||||
|
|
||||||
/* Sundry finalizers */
|
/* Sundry finalizers */
|
||||||
PyMethod_Fini();
|
PyMethod_Fini();
|
||||||
PyFrame_Fini();
|
PyFrame_Fini();
|
||||||
|
@ -629,11 +628,14 @@ Py_Finalize(void)
|
||||||
PyFloat_Fini();
|
PyFloat_Fini();
|
||||||
PyDict_Fini();
|
PyDict_Fini();
|
||||||
PySlice_Fini();
|
PySlice_Fini();
|
||||||
_PyType_Fini();
|
|
||||||
|
|
||||||
/* Cleanup Unicode implementation */
|
/* Cleanup Unicode implementation */
|
||||||
_PyUnicode_Fini();
|
_PyUnicode_Fini();
|
||||||
|
|
||||||
|
/* Delete current thread. After this, many C API calls become crashy. */
|
||||||
|
PyThreadState_Swap(NULL);
|
||||||
|
PyInterpreterState_Delete(interp);
|
||||||
|
|
||||||
/* reset file system default encoding */
|
/* reset file system default encoding */
|
||||||
if (!Py_HasFileSystemDefaultEncoding && Py_FileSystemDefaultEncoding) {
|
if (!Py_HasFileSystemDefaultEncoding && Py_FileSystemDefaultEncoding) {
|
||||||
free((char*)Py_FileSystemDefaultEncoding);
|
free((char*)Py_FileSystemDefaultEncoding);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue