77#include "frameobject.h"
88#include "structmember.h"
99#include "osdefs.h"
10+ #include "traceback.h"
1011
11- typedef struct _tracebackobject {
12- PyObject_HEAD
13- struct _tracebackobject * tb_next ;
14- PyFrameObject * tb_frame ;
15- int tb_lasti ;
16- int tb_lineno ;
17- } tracebackobject ;
18-
19- #define OFF (x ) offsetof(tracebackobject, x)
12+ #define OFF (x ) offsetof(PyTracebackObject, x)
2013
2114static struct memberlist tb_memberlist [] = {
2215 {"tb_next" , T_OBJECT , OFF (tb_next )},
@@ -27,13 +20,13 @@ static struct memberlist tb_memberlist[] = {
2720};
2821
2922static PyObject *
30- tb_getattr (tracebackobject * tb , char * name )
23+ tb_getattr (PyTracebackObject * tb , char * name )
3124{
3225 return PyMember_Get ((char * )tb , tb_memberlist , name );
3326}
3427
3528static void
36- tb_dealloc (tracebackobject * tb )
29+ tb_dealloc (PyTracebackObject * tb )
3730{
3831 PyObject_GC_UnTrack (tb );
3932 Py_TRASHCAN_SAFE_BEGIN (tb )
@@ -44,7 +37,7 @@ tb_dealloc(tracebackobject *tb)
4437}
4538
4639static int
47- tb_traverse (tracebackobject * tb , visitproc visit , void * arg )
40+ tb_traverse (PyTracebackObject * tb , visitproc visit , void * arg )
4841{
4942 int err = 0 ;
5043 if (tb -> tb_next ) {
@@ -58,7 +51,7 @@ tb_traverse(tracebackobject *tb, visitproc visit, void *arg)
5851}
5952
6053static void
61- tb_clear (tracebackobject * tb )
54+ tb_clear (PyTracebackObject * tb )
6255{
6356 Py_XDECREF (tb -> tb_next );
6457 Py_XDECREF (tb -> tb_frame );
@@ -70,7 +63,7 @@ PyTypeObject PyTraceBack_Type = {
7063 PyObject_HEAD_INIT (& PyType_Type )
7164 0 ,
7265 "traceback" ,
73- sizeof (tracebackobject ),
66+ sizeof (PyTracebackObject ),
7467 0 ,
7568 (destructor )tb_dealloc , /*tp_dealloc*/
7669 0 , /*tp_print*/
@@ -102,16 +95,16 @@ PyTypeObject PyTraceBack_Type = {
10295 0 , /* tp_dict */
10396};
10497
105- static tracebackobject *
106- newtracebackobject (tracebackobject * next , PyFrameObject * frame )
98+ static PyTracebackObject *
99+ newtracebackobject (PyTracebackObject * next , PyFrameObject * frame )
107100{
108- tracebackobject * tb ;
101+ PyTracebackObject * tb ;
109102 if ((next != NULL && !PyTraceBack_Check (next )) ||
110103 frame == NULL || !PyFrame_Check (frame )) {
111104 PyErr_BadInternalCall ();
112105 return NULL ;
113106 }
114- tb = PyObject_GC_New (tracebackobject , & PyTraceBack_Type );
107+ tb = PyObject_GC_New (PyTracebackObject , & PyTraceBack_Type );
115108 if (tb != NULL ) {
116109 Py_XINCREF (next );
117110 tb -> tb_next = next ;
129122PyTraceBack_Here (PyFrameObject * frame )
130123{
131124 PyThreadState * tstate = frame -> f_tstate ;
132- tracebackobject * oldtb = (tracebackobject * ) tstate -> curexc_traceback ;
133- tracebackobject * tb = newtracebackobject (oldtb , frame );
125+ PyTracebackObject * oldtb = (PyTracebackObject * ) tstate -> curexc_traceback ;
126+ PyTracebackObject * tb = newtracebackobject (oldtb , frame );
134127 if (tb == NULL )
135128 return -1 ;
136129 tstate -> curexc_traceback = (PyObject * )tb ;
@@ -222,11 +215,11 @@ tb_displayline(PyObject *f, char *filename, int lineno, char *name)
222215}
223216
224217static int
225- tb_printinternal (tracebackobject * tb , PyObject * f , int limit )
218+ tb_printinternal (PyTracebackObject * tb , PyObject * f , int limit )
226219{
227220 int err = 0 ;
228221 int depth = 0 ;
229- tracebackobject * tb1 = tb ;
222+ PyTracebackObject * tb1 = tb ;
230223 while (tb1 != NULL ) {
231224 depth ++ ;
232225 tb1 = tb1 -> tb_next ;
@@ -267,6 +260,6 @@ PyTraceBack_Print(PyObject *v, PyObject *f)
267260 }
268261 err = PyFile_WriteString ("Traceback (most recent call last):\n" , f );
269262 if (!err )
270- err = tb_printinternal ((tracebackobject * )v , f , limit );
263+ err = tb_printinternal ((PyTracebackObject * )v , f , limit );
271264 return err ;
272265}
0 commit comments