Py_TYPE() has already dereferenced self before the NULL check. Moved Py_TYPE() after the check for self == NULL
diff --git a/Objects/classobject.c b/Objects/classobject.c
index b7d35ef..f956852 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -218,7 +218,7 @@
{
PyObject *self = a->im_self;
PyObject *func = a->im_func;
- PyObject *klass = (PyObject*)Py_TYPE(self);
+ PyObject *klass;
PyObject *funcname = NULL ,*klassname = NULL, *result = NULL;
char *defname = "?";
@@ -226,6 +226,7 @@
PyErr_BadInternalCall();
return NULL;
}
+ klass = (PyObject*)Py_TYPE(self);
funcname = PyObject_GetAttrString(func, "__name__");
if (funcname == NULL) {