]> granicus.if.org Git - python/commitdiff
Tim chastens:
authorBarry Warsaw <barry@python.org>
Sat, 20 Jan 2001 06:24:55 +0000 (06:24 +0000)
committerBarry Warsaw <barry@python.org>
Sat, 20 Jan 2001 06:24:55 +0000 (06:24 +0000)
    Barry, that comment belongs in the code, not in the checkin msg.
    The code *used* to do this correctly (as you well know, since you
    & I went thru considerable pain to fix this the first time).
    However, because the *reason* for the convolution wasn't recorded
    in the code as a comment, somebody threw it all away the first
    time it got reworked.

    c-code-isn't-often-self-explanatory-ly y'rs  - tim

default_3way_compare(): Stick the checkin message from 2.110 in a
comment.

Objects/object.c

index e2a019fdf7ce458e97ec4e508d729627c42ee109..91531e0d25faab5259f2134dd99f3b8bebaf4a55 100644 (file)
@@ -524,7 +524,11 @@ default_3way_compare(PyObject *v, PyObject *w)
        int c;
 
        if (v->ob_type == w->ob_type) {
-               /* same type: compare pointers */
+               /* When comparing these pointers, they must be cast to
+                * integer types (i.e. Py_uintptr_t, our spelling of C9X's
+                * uintptr_t).  ANSI specifies that pointer compares other
+                * than == and != to non-related structures are undefined.
+                */
                Py_uintptr_t vv = (Py_uintptr_t)v;
                Py_uintptr_t ww = (Py_uintptr_t)w;
                return (vv < ww) ? -1 : (vv > ww) ? 1 : 0;