]> granicus.if.org Git - python/commitdiff
A static swapped_op[] array was defined in 3 different C files, & I think
authorTim Peters <tim.peters@gmail.com>
Thu, 23 Sep 2004 02:39:37 +0000 (02:39 +0000)
committerTim Peters <tim.peters@gmail.com>
Thu, 23 Sep 2004 02:39:37 +0000 (02:39 +0000)
I need to define it again.  Bite the bullet and define it once as an
extern, _Py_SwappedOp[].

Include/object.h
Objects/classobject.c
Objects/object.c
Objects/typeobject.c

index 258b0744968c47f4b2ab166b0855114a8f432489..fd7c235cd40e6eac220c9a770f686b1c3b9fb61e 100644 (file)
@@ -667,6 +667,11 @@ PyAPI_DATA(PyObject) _Py_NotImplementedStruct; /* Don't use this directly */
 #define Py_GT 4
 #define Py_GE 5
 
+/* Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.
+ * Defined in object.c.
+ */
+PyAPI_DATA(int) _Py_SwappedOp[];
+
 /*
 Define staticforward and statichere for source compatibility with old
 C extensions.
index bdbcd6a1b31e777e215652ac7f476cc785a6d918..506faab4678965fd7e8e5509280744e63ab181c0 100644 (file)
@@ -1873,9 +1873,6 @@ half_richcompare(PyObject *v, PyObject *w, int op)
        return res;
 }
 
-/* Map rich comparison operators to their swapped version, e.g. LT --> GT */
-static int swapped_op[] = {Py_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE};
-
 static PyObject *
 instance_richcompare(PyObject *v, PyObject *w, int op)
 {
@@ -1889,7 +1886,7 @@ instance_richcompare(PyObject *v, PyObject *w, int op)
        }
 
        if (PyInstance_Check(w)) {
-               res = half_richcompare(w, v, swapped_op[op]);
+               res = half_richcompare(w, v, _Py_SwappedOp[op]);
                if (res != Py_NotImplemented)
                        return res;
                Py_DECREF(res);
index 721a6ac75c401bb4647f25534e46ecc61f874be8..b28420d27c7012130b2a1875cb6661da8da58f6b 100644 (file)
@@ -476,7 +476,7 @@ adjust_tp_compare(int c)
                          ? (t)->tp_richcompare : NULL)
 
 /* Map rich comparison operators to their swapped version, e.g. LT --> GT */
-static int swapped_op[] = {Py_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE};
+extern int _Py_SwappedOp[] = {Py_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE};
 
 /* Try a genuine rich comparison, returning an object.  Return:
    NULL for exception;
@@ -494,7 +494,7 @@ try_rich_compare(PyObject *v, PyObject *w, int op)
        if (v->ob_type != w->ob_type &&
            PyType_IsSubtype(w->ob_type, v->ob_type) &&
            (f = RICHCOMPARE(w->ob_type)) != NULL) {
-               res = (*f)(w, v, swapped_op[op]);
+               res = (*f)(w, v, _Py_SwappedOp[op]);
                if (res != Py_NotImplemented)
                        return res;
                Py_DECREF(res);
@@ -506,7 +506,7 @@ try_rich_compare(PyObject *v, PyObject *w, int op)
                Py_DECREF(res);
        }
        if ((f = RICHCOMPARE(w->ob_type)) != NULL) {
-               return (*f)(w, v, swapped_op[op]);
+               return (*f)(w, v, _Py_SwappedOp[op]);
        }
        res = Py_NotImplemented;
        Py_INCREF(res);
@@ -1703,7 +1703,7 @@ PyObject_Dir(PyObject *arg)
 
        assert(result);
        if (!PyList_Check(result)) {
-               PyErr_SetString(PyExc_TypeError, 
+               PyErr_SetString(PyExc_TypeError,
                        "Expected keys() to be a list.");
                goto error;
        }
index 6f5323e2147bec21f6e9f1ae2a9cf03f985a575f..600dca5c93b221896aa3b619dc7fd5acd6ab76c7 100644 (file)
@@ -4638,9 +4638,6 @@ half_richcompare(PyObject *self, PyObject *other, int op)
        return res;
 }
 
-/* Map rich comparison operators to their swapped version, e.g. LT --> GT */
-static int swapped_op[] = {Py_GT, Py_GE, Py_EQ, Py_NE, Py_LT, Py_LE};
-
 static PyObject *
 slot_tp_richcompare(PyObject *self, PyObject *other, int op)
 {
@@ -4653,7 +4650,7 @@ slot_tp_richcompare(PyObject *self, PyObject *other, int op)
                Py_DECREF(res);
        }
        if (other->ob_type->tp_richcompare == slot_tp_richcompare) {
-               res = half_richcompare(other, self, swapped_op[op]);
+               res = half_richcompare(other, self, _Py_SwappedOp[op]);
                if (res != Py_NotImplemented) {
                        return res;
                }