bpo-30860: Fix a refleak. (#3506)
* Drop warnoptions from PyInterpreterState. * Drop xoptions from PyInterpreterState. * Don't set warnoptions and _xoptions again. * Decref after adding to sys.__dict__. * Drop an unused macro. * Check sys.xoptions *before* we delete it.
This commit is contained in:
committed by
Victor Stinner
parent
ba6d5d1def
commit
8728018624
@@ -1006,6 +1006,11 @@ Py_FinalizeEx(void)
|
||||
while (_PyGC_CollectIfEnabled() > 0)
|
||||
/* nothing */;
|
||||
#endif
|
||||
|
||||
#ifdef Py_REF_DEBUG
|
||||
PyObject *showrefcount = _PyDebug_XOptionShowRefCount();
|
||||
#endif
|
||||
|
||||
/* Destroy all modules */
|
||||
PyImport_Cleanup();
|
||||
|
||||
@@ -1053,7 +1058,10 @@ Py_FinalizeEx(void)
|
||||
/* dump hash stats */
|
||||
_PyHash_Fini();
|
||||
|
||||
_PY_DEBUG_PRINT_TOTAL_REFS();
|
||||
#ifdef Py_REF_DEBUG
|
||||
if (showrefcount == Py_True)
|
||||
_PyDebug_PrintTotalRefs();
|
||||
#endif
|
||||
|
||||
#ifdef Py_TRACE_REFS
|
||||
/* Display all objects still alive -- this can invoke arbitrary
|
||||
|
||||
Reference in New Issue
Block a user