diff Python/traceback.c @ 11999:c94247b5c355 legacy-trunk

Christian Tismer's "trashcan" patch: Added wrapping macros to dictobject.c, listobject.c, tupleobject.c, frameobject.c, traceback.c that safely prevends core dumps on stack overflow. Macros and functions in object.c, object.h. The method is an "elevator destructor" that turns cascading deletes into tail recursive behavior when some limit is hit.
author Guido van Rossum <guido@python.org>
date Mon, 13 Mar 2000 16:01:29 +0000
parents d3696bf08eee
children 5b5581af951c
line wrap: on
line diff
--- a/Python/traceback.c	Mon Mar 13 15:56:08 2000 +0000
+++ b/Python/traceback.c	Mon Mar 13 16:01:29 2000 +0000
@@ -68,9 +68,11 @@
 tb_dealloc(tb)
 	tracebackobject *tb;
 {
+	Py_TRASHCAN_SAFE_BEGIN(tb)
 	Py_XDECREF(tb->tb_next);
 	Py_XDECREF(tb->tb_frame);
 	PyMem_DEL(tb);
+	Py_TRASHCAN_SAFE_END(tb)
 }
 
 #define Tracebacktype PyTraceBack_Type