Browse Source

Cleanup type_call() to ease debug

It was easy to miss the call to type->tp_init because it was done in a long
conditional expression. Split the long expression in multiple lines to make the
debug step by step easier.
pull/224/head
Victor Stinner 13 years ago
parent
commit
3997cfdb7f
  1. 10
      Objects/typeobject.c

10
Objects/typeobject.c

@ -750,10 +750,12 @@ type_call(PyTypeObject *type, PyObject *args, PyObject *kwds)
if (!PyType_IsSubtype(Py_TYPE(obj), type))
return obj;
type = Py_TYPE(obj);
if (type->tp_init != NULL &&
type->tp_init(obj, args, kwds) < 0) {
Py_DECREF(obj);
obj = NULL;
if (type->tp_init != NULL) {
int res = type->tp_init(obj, args, kwds);
if (res < 0) {
Py_DECREF(obj);
obj = NULL;
}
}
}
return obj;

Loading…
Cancel
Save