diff Python/traceback.c @ 22658:409311c78383 2.2

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!
author Guido van Rossum <guido@python.org>
date Fri, 29 Mar 2002 14:47:18 +0000
parents 379fc66f4c96
children
line wrap: on
line diff
--- a/Python/traceback.c	Fri Mar 29 01:05:09 2002 +0000
+++ b/Python/traceback.c	Fri Mar 29 14:47:18 2002 +0000
@@ -35,8 +35,8 @@
 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);