From dae0276bb6bc7281d59fb0b8f1aab31634ee80dc Mon Sep 17 00:00:00 2001 From: Eric Snow Date: Thu, 14 Sep 2017 00:35:58 -0700 Subject: bpo-30860: Fix a refleak. (#3567) Resolves bpo-31420. (This was accidentally reverted when in #3565.) --- Python/pylifecycle.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'Python/pylifecycle.c') diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 0700569ac5..2aac901ad1 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -1011,6 +1011,11 @@ Py_FinalizeEx(void) while (_PyGC_CollectIfEnabled() > 0) /* nothing */; #endif + +#ifdef Py_REF_DEBUG + PyObject *showrefcount = _PyDebug_XOptionShowRefCount(); +#endif + /* Destroy all modules */ PyImport_Cleanup(); @@ -1058,7 +1063,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 -- cgit v1.2.1