From: Guido van Rossum Date: Fri, 29 Mar 2002 14:47:18 +0000 (+0000) Subject: Backport to 2.2.1: X-Git-Tag: v2.2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=919c066be2f81fe81a207ec6f1367fd309ca6183;p=thirdparty%2FPython%2Fcpython.git Backport to 2.2.1: This is Neil's fix for SF bug 535905 (Evil Trashcan and GC interaction). The fix makes it possible to call PyObject_GC_UnTrack() more than once on the same object, and then move the PyObject_GC_UnTrack() call to *before* the trashcan code is invoked. BUGFIX CANDIDATE! --- diff --git a/Python/traceback.c b/Python/traceback.c index fee9d12a00e4..c1c2c16ac136 100644 --- a/Python/traceback.c +++ b/Python/traceback.c @@ -35,8 +35,8 @@ tb_getattr(tracebackobject *tb, char *name) static void tb_dealloc(tracebackobject *tb) { + PyObject_GC_UnTrack(tb); Py_TRASHCAN_SAFE_BEGIN(tb) - _PyObject_GC_UNTRACK(tb); Py_XDECREF(tb->tb_next); Py_XDECREF(tb->tb_frame); PyObject_GC_Del(tb);