From: Victor Stinner Date: Tue, 19 Mar 2019 13:53:58 +0000 (+0100) Subject: bpo-36356: pymain_free() calls _PyRuntime_Finalize() (GH-12435) X-Git-Tag: v3.8.0a3~56 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f5f336a819a3d881bb217bf8f9b5cacba03a4e45;p=thirdparty%2FPython%2Fcpython.git bpo-36356: pymain_free() calls _PyRuntime_Finalize() (GH-12435) Ensure that _PyRuntime_Finalize() is always call. This change fix a few memory leaks when running "python3 -V". --- diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h index 703a85b96b4e..7c9d11aec36c 100644 --- a/Include/internal/pycore_pystate.h +++ b/Include/internal/pycore_pystate.h @@ -184,6 +184,8 @@ PyAPI_FUNC(void) _PyRuntimeState_ReInitThreads(void); Return NULL on success, or return an error message on failure. */ PyAPI_FUNC(_PyInitError) _PyRuntime_Initialize(void); +PyAPI_FUNC(void) _PyRuntime_Finalize(void); + #define _Py_CURRENTLY_FINALIZING(tstate) \ (_PyRuntime.finalizing == tstate) diff --git a/Modules/main.c b/Modules/main.c index 8f7a1bfa8308..99396b73c650 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -839,6 +839,7 @@ pymain_free(void) _PyPathConfig_ClearGlobal(); _Py_ClearStandardStreamEncoding(); _Py_ClearArgcArgv(); + _PyRuntime_Finalize(); }