mirror of
https://github.com/python/cpython.git
synced 2025-07-19 09:15:34 +00:00
Get rid of traceback.c:tb_getattr in favor of marking the members as READONLY.
This commit is contained in:
parent
3a38c91342
commit
ee634a4013
1 changed files with 3 additions and 19 deletions
|
@ -19,22 +19,6 @@ static PyMemberDef tb_memberlist[] = {
|
||||||
{NULL} /* Sentinel */
|
{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
|
static void
|
||||||
tb_dealloc(PyTracebackObject *tb)
|
tb_dealloc(PyTracebackObject *tb)
|
||||||
{
|
{
|
||||||
|
@ -68,7 +52,7 @@ PyTypeObject PyTraceBack_Type = {
|
||||||
0,
|
0,
|
||||||
(destructor)tb_dealloc, /*tp_dealloc*/
|
(destructor)tb_dealloc, /*tp_dealloc*/
|
||||||
0, /*tp_print*/
|
0, /*tp_print*/
|
||||||
(getattrfunc)tb_getattr, /*tp_getattr*/
|
0, /*tp_getattr*/
|
||||||
0, /*tp_setattr*/
|
0, /*tp_setattr*/
|
||||||
0, /*tp_compare*/
|
0, /*tp_compare*/
|
||||||
0, /*tp_repr*/
|
0, /*tp_repr*/
|
||||||
|
@ -78,7 +62,7 @@ PyTypeObject PyTraceBack_Type = {
|
||||||
0, /* tp_hash */
|
0, /* tp_hash */
|
||||||
0, /* tp_call */
|
0, /* tp_call */
|
||||||
0, /* tp_str */
|
0, /* tp_str */
|
||||||
0, /* tp_getattro */
|
PyObject_GenericGetAttr, /* tp_getattro */
|
||||||
0, /* tp_setattro */
|
0, /* tp_setattro */
|
||||||
0, /* tp_as_buffer */
|
0, /* tp_as_buffer */
|
||||||
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
|
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
|
||||||
|
@ -90,7 +74,7 @@ PyTypeObject PyTraceBack_Type = {
|
||||||
0, /* tp_iter */
|
0, /* tp_iter */
|
||||||
0, /* tp_iternext */
|
0, /* tp_iternext */
|
||||||
0, /* tp_methods */
|
0, /* tp_methods */
|
||||||
0, /* tp_members */
|
tb_memberlist, /* tp_members */
|
||||||
0, /* tp_getset */
|
0, /* tp_getset */
|
||||||
0, /* tp_base */
|
0, /* tp_base */
|
||||||
0, /* tp_dict */
|
0, /* tp_dict */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue