summaryrefslogtreecommitdiff
path: root/Python/traceback.c
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2009-03-18 21:49:29 +0000
committerBenjamin Peterson <benjamin@python.org>2009-03-18 21:49:29 +0000
commit53f098cdc6f1416e43090f518eac9a37cdcc818c (patch)
treef98fcf37fda9d4b82184a273f9c50fc1f0b45785 /Python/traceback.c
parent1637a68ab5649705809ac1fd844837f24dff4bcc (diff)
downloadcpython-git-53f098cdc6f1416e43090f518eac9a37cdcc818c.tar.gz
Merged revisions 70463 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r70463 | benjamin.peterson | 2009-03-18 15:52:15 -0500 (Wed, 18 Mar 2009) | 1 line fix strange errors when setting attributes on tracebacks #4034 ........
Diffstat (limited to 'Python/traceback.c')
-rw-r--r--Python/traceback.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/Python/traceback.c b/Python/traceback.c
index 5df7694e66..c2d7e77a3e 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -11,20 +11,14 @@
#define OFF(x) offsetof(PyTracebackObject, x)
-static struct memberlist tb_memberlist[] = {
- {"tb_next", T_OBJECT, OFF(tb_next)},
- {"tb_frame", T_OBJECT, OFF(tb_frame)},
- {"tb_lasti", T_INT, OFF(tb_lasti)},
- {"tb_lineno", T_INT, OFF(tb_lineno)},
+static PyMemberDef tb_memberlist[] = {
+ {"tb_next", T_OBJECT, OFF(tb_next), READONLY},
+ {"tb_frame", T_OBJECT, OFF(tb_frame), READONLY},
+ {"tb_lasti", T_INT, OFF(tb_lasti), READONLY},
+ {"tb_lineno", T_INT, OFF(tb_lineno), READONLY},
{NULL} /* Sentinel */
};
-static PyObject *
-tb_getattr(PyTracebackObject *tb, char *name)
-{
- return PyMember_Get((char *)tb, tb_memberlist, name);
-}
-
static void
tb_dealloc(PyTracebackObject *tb)
{
@@ -58,7 +52,7 @@ PyTypeObject PyTraceBack_Type = {
0,
(destructor)tb_dealloc, /*tp_dealloc*/
0, /*tp_print*/
- (getattrfunc)tb_getattr, /*tp_getattr*/
+ 0, /*tp_getattr*/
0, /*tp_setattr*/
0, /*tp_compare*/
0, /*tp_repr*/
@@ -80,8 +74,8 @@ PyTypeObject PyTraceBack_Type = {
0, /* tp_iter */
0, /* tp_iternext */
0, /* tp_methods */
- 0, /* tp_members */
- 0, /* tp_getset */
+ tb_memberlist, /* tp_members */
+ 0, /* tp_getset */
0, /* tp_base */
0, /* tp_dict */
};