From 5da3e1deeab18403e915b30b01fd3315453828e4 Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Wed, 4 Jun 2003 20:47:39 +0000 Subject: [PATCH] Leak bug fixed thanks to gideon may for reporting it. [SVN r18671] --- src/object/life_support.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/object/life_support.cpp b/src/object/life_support.cpp index ae414bbe..a7eca8f7 100644 --- a/src/object/life_support.cpp +++ b/src/object/life_support.cpp @@ -99,11 +99,12 @@ PyObject* make_nurse_and_patient(PyObject* nurse, PyObject* patient) // We're going to leak this reference, but don't worry; the // life_support system decrements it when the nurse dies. PyObject* weakref = PyWeakref_NewRef(nurse, (PyObject*)system); + + // weakref has either taken ownership, or we have to release it + // anyway + Py_DECREF(system); if (!weakref) - { - Py_XDECREF(system); return 0; - } system->patient = patient; Py_XINCREF(patient); // hang on to the patient until death