On Mar 24, 10:01 am, NotGuru <[EMAIL PROTECTED]> wrote: > I was writing some C extensions for Python and use PyTupleType_Check > extensively. I found that all the PySomeType_Check macros directly > delegate the job to PyObject_TypeCheck(op, &PyType_Type). The > PyObject_TypeCheck(op, &PyType_Type) is again a macro and defined as > ((ob)->ob_type == (tp) || PyType_IsSubtype((ob)->ob_type, (tp))) > > in object.h. > > My questions is: is it necessary to check the null pointer in the > macro or it's a job for the user? Semantically all the type check > should report a false if a null pointer is encountered. I've already > had the patch to this issue but I am not sure if I think this problem > right. I don't know if there are some python core developers around > but I would like to hear all opinions towards this. > > BTW, if the user didn't check null pointer before call the function, a > segmentation fault might occur.
You should check for null pointer returned by any C-API function that is meant to return an object pointer; this indicates that an exception has happened; your code should clean up and exit. See section 1.3 of the Python/C API Reference Manual. -- http://mail.python.org/mailman/listinfo/python-list