]> granicus.if.org Git - python/commitdiff
Factor-out common code with a new macro
authorRaymond Hettinger <python@rcn.com>
Mon, 28 Jan 2008 21:47:42 +0000 (21:47 +0000)
committerRaymond Hettinger <python@rcn.com>
Mon, 28 Jan 2008 21:47:42 +0000 (21:47 +0000)
Include/setobject.h
Objects/setobject.c

index 2739d623ac27eebc0d068148b303827eeac2e54d..fc32367724ea961a94e352bdc81347e60680503d 100644 (file)
@@ -73,6 +73,8 @@ PyAPI_DATA(PyTypeObject) PyFrozenSet_Type;
        (Py_TYPE(ob) == &PySet_Type || Py_TYPE(ob) == &PyFrozenSet_Type || \
          PyType_IsSubtype(Py_TYPE(ob), &PySet_Type) || \
          PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type))
+#define PySet_Check(ob) \
+       (Py_TYPE(ob) == &PySet_Type || PyType_IsSubtype(Py_TYPE(ob), &PySet_Type))
 
 PyAPI_FUNC(PyObject *) PySet_New(PyObject *);
 PyAPI_FUNC(PyObject *) PyFrozenSet_New(PyObject *);
index ee11b9f9b14136e65ecaa9f65a6b0b661eabb9fb..4b4213ab8a3ce9cf58d871e700b1b8efb7433275 100644 (file)
@@ -2158,7 +2158,7 @@ PySet_Size(PyObject *anyset)
 int
 PySet_Clear(PyObject *set)
 {
-       if (!PyType_IsSubtype(Py_TYPE(set), &PySet_Type)) {
+       if (!PySet_Check(set)) {
                PyErr_BadInternalCall();
                return -1;
        }
@@ -2178,7 +2178,7 @@ PySet_Contains(PyObject *anyset, PyObject *key)
 int
 PySet_Discard(PyObject *set, PyObject *key)
 {
-       if (!PyType_IsSubtype(Py_TYPE(set), &PySet_Type)) {
+       if (!PySet_Check(set)) {
                PyErr_BadInternalCall();
                return -1;
        }
@@ -2229,7 +2229,7 @@ _PySet_NextEntry(PyObject *set, Py_ssize_t *pos, PyObject **key, long *hash)
 PyObject *
 PySet_Pop(PyObject *set)
 {
-       if (!PyType_IsSubtype(Py_TYPE(set), &PySet_Type)) {
+       if (!PySet_Check(set)) {
                PyErr_BadInternalCall();
                return NULL;
        }
@@ -2239,7 +2239,7 @@ PySet_Pop(PyObject *set)
 int
 _PySet_Update(PyObject *set, PyObject *iterable)
 {
-       if (!PyType_IsSubtype(Py_TYPE(set), &PySet_Type)) {
+       if (!PySet_Check(set)) {
                PyErr_BadInternalCall();
                return -1;
        }