diff Python/traceback.c @ 42591:9b02128521e2

Get rid of traceback.c:tb_getattr in favor of marking the members as READONLY.
author Collin Winter <collinw@gmail.com>
date Tue, 14 Aug 2007 17:47:27 +0000
parents 74a3c6826683
children 5391b5f8cd7a
line wrap: on
line diff
--- a/Python/traceback.c	Tue Aug 14 17:08:07 2007 +0000
+++ b/Python/traceback.c	Tue Aug 14 17:47:27 2007 +0000
@@ -19,22 +19,6 @@
 	{NULL}	/* Sentinel */
 };
 
-/* XXX(nnorwitz): can we get rid of tb_getattr and use tp_members? */
-static PyObject *
-tb_getattr(PyTracebackObject *tb, char *name)
-{
-	int i;
-	for (i = 0; tb_memberlist[i].name != NULL; i++) {
-		if (strcmp(name, tb_memberlist[i].name) == 0)
-			return PyMember_GetOne((const char *)tb,
-					       tb_memberlist + i);
-	}
-	PyErr_Format(PyExc_AttributeError,
-		     "'%.50s' object has no attribute '%.400s'",
-		     Py_Type(tb)->tp_name, name);
-	return NULL;
-}
-
 static void
 tb_dealloc(PyTracebackObject *tb)
 {
@@ -68,7 +52,7 @@
 	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*/
@@ -78,7 +62,7 @@
 	0,		/* tp_hash */
 	0,		/* tp_call */
 	0,		/* tp_str */
-	0,		/* tp_getattro */
+	PyObject_GenericGetAttr,		/* tp_getattro */
 	0,		/* tp_setattro */
 	0,					/* tp_as_buffer */
 	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
@@ -90,7 +74,7 @@
 	0,					/* tp_iter */
 	0,					/* tp_iternext */
 	0,					/* tp_methods */
-	0,					/* tp_members */
+	tb_memberlist,	/* tp_members */
 	0,					/* tp_getset */
 	0,					/* tp_base */
 	0,					/* tp_dict */