From 787d9b481af54ce7cda53203604c49da12101fde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20K=C3=B6fferlein?= Date: Sun, 11 Feb 2024 10:27:53 +0100 Subject: [PATCH] Fixed issue #1610: leaking reference in Python debugger (#1618) Co-authored-by: Matthias Koefferlein --- src/pya/pya/pya.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pya/pya/pya.cc b/src/pya/pya/pya.cc index ec276f873..d46f49ec0 100644 --- a/src/pya/pya/pya.cc +++ b/src/pya/pya/pya.cc @@ -107,6 +107,7 @@ public: PythonStackTraceProvider (PyFrameObject *frame, const std::string &scope) : m_scope (scope) { + PythonRef frame_object_ref; while (frame != NULL) { #if PY_VERSION_HEX >= 0x030A0000 @@ -127,6 +128,8 @@ public: #if PY_VERSION_HEX >= 0x030A0000 frame = PyFrame_GetBack(frame); + // PyFrame_GetBack returns a strong reference, hence we need to make sure it is released + frame_object_ref = (PyObject *) frame; #else frame = frame->f_back; #endif