From: Guido van Rossum Date: Thu, 6 Dec 2001 21:28:18 +0000 (+0000) Subject: Fix for SF bug #489671 (Neil Norwitz): memory leak in test_richcmp. X-Git-Tag: v2.2.1c1~502 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=35974fbf31fd2e2a64fd13a6565f1478ed8cfa6e;p=thirdparty%2FPython%2Fcpython.git Fix for SF bug #489671 (Neil Norwitz): memory leak in test_richcmp. Had nothing to do with rich comparisons -- some stack cleanup code was lost as a result of merging in Neil Schemenauer's generators patch. Reinserted the stack cleanup code, skipping it when yielding. --- diff --git a/Python/ceval.c b/Python/ceval.c index 6def4229172c..29d70826f2b9 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2296,6 +2296,14 @@ eval_frame(PyFrameObject *f) } /* main loop */ + if (why != WHY_YIELD) { + /* Pop remaining stack entries -- but when yielding */ + while (!EMPTY()) { + v = POP(); + Py_XDECREF(v); + } + } + if (why != WHY_RETURN && why != WHY_YIELD) retval = NULL;