diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 6d2eb1defc884e..d730a98d3e5b95 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -1250,37 +1250,26 @@ static void finalize_interp_types(PyThreadState *tstate, int is_main_interp) { _PyFrame_Fini(tstate); - _PyTuple_Fini(tstate); - _PyList_Fini(tstate); + _PyAsyncGen_Fini(tstate); + _PyContext_Fini(tstate); + if (is_main_interp) { _PySet_Fini(); - _PyBytes_Fini(); } - - _PyLong_Fini(tstate); - _PyFloat_Fini(tstate); - if (is_main_interp) { _PyDict_Fini(); } + _PyList_Fini(tstate); + _PyTuple_Fini(tstate); _PySlice_Fini(tstate); - _PyWarnings_Fini(tstate->interp); if (is_main_interp) { - _Py_HashRandomization_Fini(); - _PyArg_Fini(); + _PyBytes_Fini(); } - - _PyAsyncGen_Fini(tstate); - _PyContext_Fini(tstate); - - /* Cleanup Unicode implementation */ _PyUnicode_Fini(tstate); - - if (is_main_interp) { - _Py_ClearFileSystemEncoding(); - } + _PyFloat_Fini(tstate); + _PyLong_Fini(tstate); } @@ -1299,19 +1288,20 @@ finalize_interp_clear(PyThreadState *tstate) _PyGC_Fini(tstate); - finalize_interp_types(tstate, is_main_interp); - if (is_main_interp) { - /* XXX Still allocated: - - various static ad-hoc pointers to interned strings - - int and float free list blocks - - whatever various modules and libraries allocate - */ + _Py_HashRandomization_Fini(); + _PyArg_Fini(); + _Py_ClearFileSystemEncoding(); + } - PyGrammar_RemoveAccelerators(&_PyParser_Grammar); + _PyWarnings_Fini(tstate->interp); + if (is_main_interp) { + PyGrammar_RemoveAccelerators(&_PyParser_Grammar); _PyExc_Fini(); } + + finalize_interp_types(tstate, is_main_interp); } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy