mirror of
https://github.com/python/cpython.git
synced 2025-09-01 22:47:59 +00:00
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:
parent
ba6d5d1def
commit
8728018624
7 changed files with 47 additions and 43 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue