Skip to content

Commit 0a2d11d

Browse files
author
collin.winter
committed
Get rid of traceback.c:tb_getattr in favor of marking the members as READONLY.
git-svn-id: http://svn.python.org/projects/python/branches/py3k@57026 6015fed2-1504-0410-9fe1-9d1591cc4771
1 parent e5141f3 commit 0a2d11d

1 file changed

Lines changed: 3 additions & 19 deletions

File tree

Python/traceback.c

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,6 @@ static PyMemberDef tb_memberlist[] = {
1919
{NULL} /* Sentinel */
2020
};
2121

22-
/* XXX(nnorwitz): can we get rid of tb_getattr and use tp_members? */
23-
static PyObject *
24-
tb_getattr(PyTracebackObject *tb, char *name)
25-
{
26-
int i;
27-
for (i = 0; tb_memberlist[i].name != NULL; i++) {
28-
if (strcmp(name, tb_memberlist[i].name) == 0)
29-
return PyMember_GetOne((const char *)tb,
30-
tb_memberlist + i);
31-
}
32-
PyErr_Format(PyExc_AttributeError,
33-
"'%.50s' object has no attribute '%.400s'",
34-
Py_Type(tb)->tp_name, name);
35-
return NULL;
36-
}
37-
3822
static void
3923
tb_dealloc(PyTracebackObject *tb)
4024
{
@@ -68,7 +52,7 @@ PyTypeObject PyTraceBack_Type = {
6852
0,
6953
(destructor)tb_dealloc, /*tp_dealloc*/
7054
0, /*tp_print*/
71-
(getattrfunc)tb_getattr, /*tp_getattr*/
55+
0, /*tp_getattr*/
7256
0, /*tp_setattr*/
7357
0, /*tp_compare*/
7458
0, /*tp_repr*/
@@ -78,7 +62,7 @@ PyTypeObject PyTraceBack_Type = {
7862
0, /* tp_hash */
7963
0, /* tp_call */
8064
0, /* tp_str */
81-
0, /* tp_getattro */
65+
PyObject_GenericGetAttr, /* tp_getattro */
8266
0, /* tp_setattro */
8367
0, /* tp_as_buffer */
8468
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
@@ -90,7 +74,7 @@ PyTypeObject PyTraceBack_Type = {
9074
0, /* tp_iter */
9175
0, /* tp_iternext */
9276
0, /* tp_methods */
93-
0, /* tp_members */
77+
tb_memberlist, /* tp_members */
9478
0, /* tp_getset */
9579
0, /* tp_base */
9680
0, /* tp_dict */

0 commit comments

Comments
 (0)