Mercurial > cpython-lru_cache-weakref
diff Objects/object.c @ 307:35a2528f8a73 legacy-trunk
Change cmpobject() to coerce numerical values before comparing them
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Mon, 01 Jul 1991 18:48:04 +0000 |
| parents | 6ac402023cac |
| children | 1a6cf1f8ccec |
line wrap: on
line diff
--- a/Objects/object.c Mon Jul 01 18:47:30 1991 +0000 +++ b/Objects/object.c Mon Jul 01 18:48:04 1991 +0000 @@ -117,11 +117,26 @@ return -1; if (w == NULL) return 1; - if ((tp = v->ob_type) != w->ob_type) + if ((tp = v->ob_type) != w->ob_type) { + if (tp->tp_as_number != NULL && + w->ob_type->tp_as_number != NULL) { + if (coerce(&v, &w) != 0) { + err_clear(); + /* XXX Should report the error, + XXX but the interface isn't there... */ + } + else { + int cmp = (*v->ob_type->tp_compare)(v, w); + DECREF(v); + DECREF(w); + return cmp; + } + } return strcmp(tp->tp_name, w->ob_type->tp_name); + } if (tp->tp_compare == NULL) return (v < w) ? -1 : 1; - return ((*tp->tp_compare)(v, w)); + return (*tp->tp_compare)(v, w); } object *
