changeset: 96383:0a7380984e37 branch: 3.5 parent: 96381:1c11e0de934a user: Eric Snow date: Sat May 30 09:29:53 2015 -0600 files: Include/dictobject.h Include/odictobject.h description: Issue #16991: Use PyObject_TypeCheck instead of PyObject_IsInstance. diff -r 1c11e0de934a -r 0a7380984e37 Include/dictobject.h --- a/Include/dictobject.h Sat May 30 10:57:56 2015 -0400 +++ b/Include/dictobject.h Sat May 30 09:29:53 2015 -0600 @@ -45,9 +45,9 @@ #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 -r 1c11e0de934a -r 0a7380984e37 Include/odictobject.h --- a/Include/odictobject.h Sat May 30 10:57:56 2015 -0400 +++ b/Include/odictobject.h Sat May 30 09:29:53 2015 -0600 @@ -19,7 +19,7 @@ #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)