Optimize findchar() for PyUnicode_1BYTE_KIND: use memchr and memrchr

This commit is contained in:
Victor Stinner 2011-10-13 00:18:12 +02:00
parent dd4e2f0153
commit 9e7a1bcfd6
1 changed files with 8 additions and 0 deletions

View File

@ -530,6 +530,14 @@ Py_LOCAL_INLINE(char *) findchar(void *s, int kind,
{
/* like wcschr, but doesn't stop at NULL characters */
Py_ssize_t i;
if (kind == 1) {
if (direction == 1)
return memchr(s, ch, size);
#ifdef HAVE_MEMRCHR
else
return memrchr(s, ch, size);
#endif
}
if (direction == 1) {
for(i = 0; i < size; i++)
if (PyUnicode_READ(kind, s, i) == ch)