[Python-checkins] python/dist/src/Python traceback.c,2.41,2.42

mondragon at users.sourceforge.net mondragon at users.sourceforge.net
Sun Mar 21 13:37:26 EST 2004


Update of /cvsroot/python/python/dist/src/Python
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26501/Python
Modified Files:
	traceback.c 
Log Message:
Moved tracebackobject to traceback.h, Closes SF Bug #497067
Index: traceback.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/traceback.c,v
retrieving revision 2.41
retrieving revision 2.42
diff -C2 -d -r2.41 -r2.42
*** traceback.c	19 Nov 2003 15:24:47 -0000	2.41
--- traceback.c	21 Mar 2004 18:37:23 -0000	2.42
***************
*** 8,21 ****
 #include "structmember.h"
 #include "osdefs.h"
 
! typedef struct _tracebackobject {
! 	PyObject_HEAD
! 	struct _tracebackobject *tb_next;
! 	PyFrameObject *tb_frame;
! 	int tb_lasti;
! 	int tb_lineno;
! } tracebackobject;
! 
! #define OFF(x) offsetof(tracebackobject, x)
 
 static struct memberlist tb_memberlist[] = {
--- 8,14 ----
 #include "structmember.h"
 #include "osdefs.h"
+ #include "traceback.h"
 
! #define OFF(x) offsetof(PyTracebackObject, x)
 
 static struct memberlist tb_memberlist[] = {
***************
*** 28,32 ****
 
 static PyObject *
! tb_getattr(tracebackobject *tb, char *name)
 {
 	return PyMember_Get((char *)tb, tb_memberlist, name);
--- 21,25 ----
 
 static PyObject *
! tb_getattr(PyTracebackObject *tb, char *name)
 {
 	return PyMember_Get((char *)tb, tb_memberlist, name);
***************
*** 34,38 ****
 
 static void
! tb_dealloc(tracebackobject *tb)
 {
 	PyObject_GC_UnTrack(tb);
--- 27,31 ----
 
 static void
! tb_dealloc(PyTracebackObject *tb)
 {
 	PyObject_GC_UnTrack(tb);
***************
*** 45,49 ****
 
 static int
! tb_traverse(tracebackobject *tb, visitproc visit, void *arg)
 {
 	int err = 0;
--- 38,42 ----
 
 static int
! tb_traverse(PyTracebackObject *tb, visitproc visit, void *arg)
 {
 	int err = 0;
***************
*** 59,63 ****
 
 static void
! tb_clear(tracebackobject *tb)
 {
 	Py_XDECREF(tb->tb_next);
--- 52,56 ----
 
 static void
! tb_clear(PyTracebackObject *tb)
 {
 	Py_XDECREF(tb->tb_next);
***************
*** 71,75 ****
 	0,
 	"traceback",
! 	sizeof(tracebackobject),
 	0,
 	(destructor)tb_dealloc, /*tp_dealloc*/
--- 64,68 ----
 	0,
 	"traceback",
! 	sizeof(PyTracebackObject),
 	0,
 	(destructor)tb_dealloc, /*tp_dealloc*/
***************
*** 103,110 ****
 };
 
! static tracebackobject *
! newtracebackobject(tracebackobject *next, PyFrameObject *frame)
 {
! 	tracebackobject *tb;
 	if ((next != NULL && !PyTraceBack_Check(next)) ||
 			frame == NULL || !PyFrame_Check(frame)) {
--- 96,103 ----
 };
 
! static PyTracebackObject *
! newtracebackobject(PyTracebackObject *next, PyFrameObject *frame)
 {
! 	PyTracebackObject *tb;
 	if ((next != NULL && !PyTraceBack_Check(next)) ||
 			frame == NULL || !PyFrame_Check(frame)) {
***************
*** 112,116 ****
 		return NULL;
 	}
! 	tb = PyObject_GC_New(tracebackobject, &PyTraceBack_Type);
 	if (tb != NULL) {
 		Py_XINCREF(next);
--- 105,109 ----
 		return NULL;
 	}
! 	tb = PyObject_GC_New(PyTracebackObject, &PyTraceBack_Type);
 	if (tb != NULL) {
 		Py_XINCREF(next);
***************
*** 130,135 ****
 {
 	PyThreadState *tstate = frame->f_tstate;
! 	tracebackobject *oldtb = (tracebackobject *) tstate->curexc_traceback;
! 	tracebackobject *tb = newtracebackobject(oldtb, frame);
 	if (tb == NULL)
 		return -1;
--- 123,128 ----
 {
 	PyThreadState *tstate = frame->f_tstate;
! 	PyTracebackObject *oldtb = (PyTracebackObject *) tstate->curexc_traceback;
! 	PyTracebackObject *tb = newtracebackobject(oldtb, frame);
 	if (tb == NULL)
 		return -1;
***************
*** 223,231 ****
 
 static int
! tb_printinternal(tracebackobject *tb, PyObject *f, int limit)
 {
 	int err = 0;
 	int depth = 0;
! 	tracebackobject *tb1 = tb;
 	while (tb1 != NULL) {
 		depth++;
--- 216,224 ----
 
 static int
! tb_printinternal(PyTracebackObject *tb, PyObject *f, int limit)
 {
 	int err = 0;
 	int depth = 0;
! 	PyTracebackObject *tb1 = tb;
 	while (tb1 != NULL) {
 		depth++;
***************
*** 268,272 ****
 	err = PyFile_WriteString("Traceback (most recent call last):\n", f);
 	if (!err)
! 		err = tb_printinternal((tracebackobject *)v, f, limit);
 	return err;
 }
--- 261,265 ----
 	err = PyFile_WriteString("Traceback (most recent call last):\n", f);
 	if (!err)
! 		err = tb_printinternal((PyTracebackObject *)v, f, limit);
 	return err;
 }


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /