diff --git a/Include/complexobject.h b/Include/complexobject.h index ef5016fe41a..edd20698f2d 100644 --- a/Include/complexobject.h +++ b/Include/complexobject.h @@ -42,7 +42,7 @@ typedef struct { extern DL_IMPORT(PyTypeObject) PyComplex_Type; -#define PyComplex_Check(op) ((op)->ob_type == &PyComplex_Type) +#define PyComplex_Check(op) PyObject_TypeCheck(op, &PyComplex_Type) extern DL_IMPORT(PyObject *) PyComplex_FromCComplex(Py_complex); extern DL_IMPORT(PyObject *) PyComplex_FromDoubles(double real, double imag); diff --git a/Include/floatobject.h b/Include/floatobject.h index 6e36a2f3187..9f67bc107d6 100644 --- a/Include/floatobject.h +++ b/Include/floatobject.h @@ -18,7 +18,7 @@ typedef struct { extern DL_IMPORT(PyTypeObject) PyFloat_Type; -#define PyFloat_Check(op) ((op)->ob_type == &PyFloat_Type) +#define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type) /* Return Python float from string PyObject. Second argument ignored on input, and, if non-NULL, NULL is stored into *junk (this tried to serve a diff --git a/Include/intobject.h b/Include/intobject.h index 128d0d31cdb..29448e3cc17 100644 --- a/Include/intobject.h +++ b/Include/intobject.h @@ -27,7 +27,7 @@ typedef struct { extern DL_IMPORT(PyTypeObject) PyInt_Type; -#define PyInt_Check(op) ((op)->ob_type == &PyInt_Type) +#define PyInt_Check(op) PyObject_TypeCheck(op, &PyInt_Type) extern DL_IMPORT(PyObject *) PyInt_FromString(char*, char**, int); #ifdef Py_USING_UNICODE diff --git a/Include/longobject.h b/Include/longobject.h index 8efa35faa5f..5d1ea0a5174 100644 --- a/Include/longobject.h +++ b/Include/longobject.h @@ -11,7 +11,7 @@ typedef struct _longobject PyLongObject; /* Revealed in longintrepr.h */ extern DL_IMPORT(PyTypeObject) PyLong_Type; -#define PyLong_Check(op) ((op)->ob_type == &PyLong_Type) +#define PyLong_Check(op) PyObject_TypeCheck(op, &PyLong_Type) extern DL_IMPORT(PyObject *) PyLong_FromLong(long); extern DL_IMPORT(PyObject *) PyLong_FromUnsignedLong(unsigned long);