From: Tim Peters Date: Mon, 7 May 2001 20:53:51 +0000 (+0000) Subject: SF bug #422108 - Error in rich comparisons. X-Git-Tag: v2.2a3~1894 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6d60b2e762e028a5b40599cd283e2cd417c3fcd6;p=thirdparty%2FPython%2Fcpython.git SF bug #422108 - Error in rich comparisons. 2.1.1 bugfix candidate too. Fix a bad (albeit unlikely) return value in try_rich_to_3way_compare(). Also document do_cmp()'s return values. --- diff --git a/Objects/object.c b/Objects/object.c index f95240592e4f..c6d05915b2c4 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -447,7 +447,7 @@ try_rich_to_3way_compare(PyObject *v, PyObject *w) for (i = 0; i < 3; i++) { switch (try_rich_compare_bool(v, w, tries[i].op)) { case -1: - return -1; + return -2; case 1: return tries[i].outcome; } @@ -585,6 +585,12 @@ default_3way_compare(PyObject *v, PyObject *w) #define CHECK_TYPES(o) PyType_HasFeature((o)->ob_type, Py_TPFLAGS_CHECKTYPES) +/* Do a 3-way comparison, by hook or by crook. Return: + -2 for an exception; + -1 if v < w; + 0 if v == w; + 1 if v > w; +*/ static int do_cmp(PyObject *v, PyObject *w) {