summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2013-08-14 01:16:34 (GMT)
committerRaymond Hettinger <python@rcn.com>2013-08-14 01:16:34 (GMT)
commitb1b915c796a9054cce867ef47071bcf9f79b985f (patch)
treef0632ce96b998ca0f68626f2d494040d8920d93a /Objects
parent0a01ac4300ff3831d63fc065eb9bac7767bfd8dc (diff)
downloadcpython-b1b915c796a9054cce867ef47071bcf9f79b985f.zip
cpython-b1b915c796a9054cce867ef47071bcf9f79b985f.tar.gz
cpython-b1b915c796a9054cce867ef47071bcf9f79b985f.tar.bz2
Issue 18719: Remove a false optimization
Remove an unused early-out test from the critical path for dict and set lookups. When the strings already have matching lengths, kinds, and hashes, there is no additional information gained by checking the first characters (the probability of a mismatch is already known to be less than 1 in 2**64).
Diffstat (limited to 'Objects')
-rw-r--r--Objects/stringlib/eq.h9
1 files changed, 0 insertions, 9 deletions
diff --git a/Objects/stringlib/eq.h b/Objects/stringlib/eq.h
index 8e79a43..3e5f510 100644
--- a/Objects/stringlib/eq.h
+++ b/Objects/stringlib/eq.h
@@ -20,15 +20,6 @@ unicode_eq(PyObject *aa, PyObject *bb)
return 1;
if (PyUnicode_KIND(a) != PyUnicode_KIND(b))
return 0;
- /* Just comparing the first byte is enough to see if a and b differ.
- * If they are 2 byte or 4 byte character most differences will happen in
- * the lower bytes anyways.
- */
- if (PyUnicode_1BYTE_DATA(a)[0] != PyUnicode_1BYTE_DATA(b)[0])
- return 0;
- if (PyUnicode_KIND(a) == PyUnicode_1BYTE_KIND &&
- PyUnicode_GET_LENGTH(a) == 1)
- return 1;
return memcmp(PyUnicode_1BYTE_DATA(a), PyUnicode_1BYTE_DATA(b),
PyUnicode_GET_LENGTH(a) * PyUnicode_KIND(a)) == 0;
}