• Tim Peters's avatar
    Rehabilitated the fast-path richcmp code, and sped it up. It wasn't · 67754e99
    Tim Peters yazdı
    helping for types that defined tp_richcmp but not tp_compare, although
    that's when it's most valuable, and strings moved into that category
    since the fast path was first introduced.  Now it helps for same-type
    non-Instance objects that define rich or 3-way compares.
    
    For all the edits here, the rest just amounts to moving the fast path from
    do_richcmp into PyObject_RichCompare, saving a layer of function call
    (measurable on my box!).  This loses when NESTING_LIMIT is exceeded, but I
    don't care about that (fast-paths are for normal cases, not pathologies).
    
    Also added a tasteful <wink> label to get out of PyObject_RichCompare, as
    the if/else nesting in this routine was getting incomprehensible.
    67754e99
object.c 45.8 KB