Kaydet (Commit) dda339e6 authored tarafından Antoine Pitrou's avatar Antoine Pitrou

Simplify heuristic for when to use memchr

üst 72d6a134
...@@ -113,20 +113,10 @@ FASTSEARCH(const STRINGLIB_CHAR* s, Py_ssize_t n, ...@@ -113,20 +113,10 @@ FASTSEARCH(const STRINGLIB_CHAR* s, Py_ssize_t n,
/* use memchr if we can choose a needle without two many likely /* use memchr if we can choose a needle without two many likely
false positives */ false positives */
unsigned char needle; unsigned char needle;
int use_needle = 1;
needle = p[0] & 0xff; needle = p[0] & 0xff;
#if STRINGLIB_SIZEOF_CHAR > 1 #if STRINGLIB_SIZEOF_CHAR > 1
if (needle == 0) { if (needle != 0)
needle = (p[0] >> 8) & 0xff;
#if STRINGLIB_SIZEOF_CHAR > 2
if (needle == 0)
needle = (p[0] >> 16) & 0xff;
#endif #endif
if (needle >= 32 || needle == 0)
use_needle = 0;
}
#endif
if (use_needle)
return STRINGLIB(fastsearch_memchr_1char) return STRINGLIB(fastsearch_memchr_1char)
(s, n, p[0], needle, maxcount, mode); (s, n, p[0], needle, maxcount, mode);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment