summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-11-04 07:29:31 (GMT)
committerTim Peters <tim.peters@gmail.com>2001-11-04 07:29:31 (GMT)
commit67754e993ea681dcdd6d13e396411524922ba89a (patch)
tree7827ba2d331fe6d106b8f56bb32a011f4f7cf302 /Python
parent9930061ce28b1fc60d267ae3474c74a41e655cd5 (diff)
downloadcpython-67754e993ea681dcdd6d13e396411524922ba89a.zip
cpython-67754e993ea681dcdd6d13e396411524922ba89a.tar.gz
cpython-67754e993ea681dcdd6d13e396411524922ba89a.tar.bz2
Rehabilitated the fast-path richcmp code, and sped it up. It wasn't
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.
Diffstat (limited to 'Python')
0 files changed, 0 insertions, 0 deletions