]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
SF bug #422108 - Error in rich comparisons.
authorTim Peters <tim.peters@gmail.com>
Mon, 7 May 2001 20:53:51 +0000 (20:53 +0000)
committerTim Peters <tim.peters@gmail.com>
Mon, 7 May 2001 20:53:51 +0000 (20:53 +0000)
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.

Objects/object.c

index f95240592e4fbd11fba4613782321ea52f882d73..c6d05915b2c44d311ba62fbb77601b035c8a7857 100644 (file)
@@ -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)
 {