Added notimplemented_dealloc for better error reporting

This commit is contained in:
Armin Ronacher 2012-10-06 14:28:58 +02:00
parent dfc23974ed
commit 226b1db0e2
1 changed files with 10 additions and 1 deletions

View File

@ -1524,12 +1524,21 @@ notimplemented_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
Py_RETURN_NOTIMPLEMENTED; Py_RETURN_NOTIMPLEMENTED;
} }
static void
notimplemented_dealloc(PyObject* ignore)
{
/* This should never get called, but we also don't want to SEGV if
* we accidentally decref NotImplemented out of existence.
*/
Py_FatalError("deallocating NotImplemented");
}
static PyTypeObject PyNotImplemented_Type = { static PyTypeObject PyNotImplemented_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0) PyVarObject_HEAD_INIT(&PyType_Type, 0)
"NotImplementedType", "NotImplementedType",
0, 0,
0, 0,
none_dealloc, /*tp_dealloc*/ /*never called*/ notimplemented_dealloc, /*tp_dealloc*/ /*never called*/
0, /*tp_print*/ 0, /*tp_print*/
0, /*tp_getattr*/ 0, /*tp_getattr*/
0, /*tp_setattr*/ 0, /*tp_setattr*/