From 8c7ed012b87db4de66da61c2f7c0a11a61277384 Mon Sep 17 00:00:00 2001 From: Eric Snow Date: Sat, 30 May 2015 09:29:53 -0600 Subject: [PATCH] Issue #16991: Use PyObject_TypeCheck instead of PyObject_IsInstance. --- Include/dictobject.h | 6 +++--- Include/odictobject.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Include/dictobject.h b/Include/dictobject.h index 17262feffc6..320f9ecf8c9 100644 --- a/Include/dictobject.h +++ b/Include/dictobject.h @@ -45,9 +45,9 @@ PyAPI_DATA(PyTypeObject) PyDictValues_Type; #define PyDict_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_DICT_SUBCLASS) #define PyDict_CheckExact(op) (Py_TYPE(op) == &PyDict_Type) -#define PyDictKeys_Check(op) (PyObject_IsInstance(op, (PyObject *)&PyDictKeys_Type)) -#define PyDictItems_Check(op) (PyObject_IsInstance(op, (PyObject *)&PyDictItems_Type)) -#define PyDictValues_Check(op) (PyObject_IsInstance(op, (PyObject *)&PyDictValues_Type)) +#define PyDictKeys_Check(op) PyObject_TypeCheck(op, &PyDictKeys_Type) +#define PyDictItems_Check(op) PyObject_TypeCheck(op, &PyDictItems_Type) +#define PyDictValues_Check(op) PyObject_TypeCheck(op, &PyDictValues_Type) /* This excludes Values, since they are not sets. */ # define PyDictViewSet_Check(op) \ (PyDictKeys_Check(op) || PyDictItems_Check(op)) diff --git a/Include/odictobject.h b/Include/odictobject.h index a32fbc5293b..1d0d235ef54 100644 --- a/Include/odictobject.h +++ b/Include/odictobject.h @@ -19,7 +19,7 @@ PyAPI_DATA(PyTypeObject) PyODictValues_Type; #endif /* Py_LIMITED_API */ -#define PyODict_Check(op) PyObject_IsInstance(op, (PyObject *)&PyODict_Type) +#define PyODict_Check(op) PyObject_TypeCheck(op, &PyODict_Type) #define PyODict_CheckExact(op) (Py_TYPE(op) == &PyODict_Type) #define PyODict_SIZE(op) ((PyDictObject *)op)->ma_used #define PyODict_HasKey(od, key) (PyMapping_HasKey(PyObject *)od, key)