diff options
| author | Collin Winter <collinw@gmail.com> | 2007-08-14 17:53:54 +0000 | 
|---|---|---|
| committer | Collin Winter <collinw@gmail.com> | 2007-08-14 17:53:54 +0000 | 
| commit | 3eed76522389d55248a71aa8c83203aa3ae0873b (patch) | |
| tree | 9a52b1a1b21046fafcc54736ef173e1cfc8fe8d1 /Python | |
| parent | ee634a4013ff6321aecd132498721ebfb734a4cc (diff) | |
| download | cpython-git-3eed76522389d55248a71aa8c83203aa3ae0873b.tar.gz | |
Bug #1772489: make dir() work on traceback objects again.
Diffstat (limited to 'Python')
| -rw-r--r-- | Python/traceback.c | 14 | 
1 files changed, 13 insertions, 1 deletions
| diff --git a/Python/traceback.c b/Python/traceback.c index aa99ab4da4..5bb8841ff2 100644 --- a/Python/traceback.c +++ b/Python/traceback.c @@ -11,6 +11,18 @@  #define OFF(x) offsetof(PyTracebackObject, x) +static PyObject * +tb_dir(PyTracebackObject *self) +{ +    return Py_BuildValue("[ssss]", "tb_frame", "tb_next", +                                   "tb_lasti", "tb_lineno"); +} + +static PyMethodDef tb_methods[] = { +   {"__dir__", (PyCFunction)tb_dir, METH_NOARGS}, +   {NULL, NULL, 0, NULL}, +}; +  static PyMemberDef tb_memberlist[] = {  	{"tb_next",	T_OBJECT,	OFF(tb_next),	READONLY},  	{"tb_frame",	T_OBJECT,	OFF(tb_frame),	READONLY}, @@ -73,7 +85,7 @@ PyTypeObject PyTraceBack_Type = {  	0,					/* tp_weaklistoffset */  	0,					/* tp_iter */  	0,					/* tp_iternext */ -	0,					/* tp_methods */ +	tb_methods,	/* tp_methods */  	tb_memberlist,	/* tp_members */  	0,					/* tp_getset */  	0,					/* tp_base */ | 
