A static swapped_op[] array was defined in 3 different C files, & I think

I need to define it again.  Bite the bullet and define it once as an
extern, _Py_SwappedOp[].
This commit is contained in:
Tim Peters 2004-09-23 02:39:37 +00:00
parent 7790c3b802
commit f4aca755bc
4 changed files with 11 additions and 12 deletions

View 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.

View 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);

View 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;
}

View 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;
}