Kaydet (Commit) 387389b6 authored tarafından David Bolen's avatar David Bolen Kaydeden (comit) Michael Stahl

fdo#46926: fix UNO struct comparison in Python 2

This requires setting a rich comparison flag in Python 2, while Python 3
uses rich comparison by default.
(regression from a09ce468)
üst 4634cbc2
......@@ -641,9 +641,16 @@ static PyObject* PyUNO_cmp( PyObject *self, PyObject *that, int op )
{
raisePyExceptionWithAny( makeAny( e ) );
}
return Py_False;
return (op == Py_EQ ? Py_False : Py_True);
}
/* Python 2 has a tp_flags value for rich comparisons. Python 3 does not (on by default) */
#ifdef Py_TPFLAGS_HAVE_RICHCOMPARE
#define TP_FLAGS (Py_TPFLAGS_HAVE_RICHCOMPARE)
#else
#define TP_FLAGS 0
#endif
static PyTypeObject PyUNOType =
{
PyVarObject_HEAD_INIT( &PyType_Type, 0 )
......@@ -654,7 +661,7 @@ static PyTypeObject PyUNOType =
(printfunc) 0,
(getattrfunc) PyUNO_getattr,
(setattrfunc) PyUNO_setattr,
0,
(cmpfunc) 0,
(reprfunc) PyUNO_repr,
0,
0,
......@@ -665,7 +672,7 @@ static PyTypeObject PyUNOType =
(getattrofunc)0,
(setattrofunc)0,
NULL,
0,
TP_FLAGS,
NULL,
(traverseproc)0,
(inquiry)0,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment