diff options
author | Rich Felker <dalias@aerifal.cx> | 2018-11-02 12:01:37 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2018-11-02 12:02:09 -0400 |
commit | 8f5a820d147da36bcdbddd201b35d293699dacd8 (patch) | |
tree | d2f96ac9eb116cd29e55102bcabdbc3a5c5a477b | |
parent | 1b52863e244ecee5b5935b6d36bb9e6efe84c035 (diff) | |
download | musl-8f5a820d147da36bcdbddd201b35d293699dacd8.zip musl-8f5a820d147da36bcdbddd201b35d293699dacd8.tar.gz musl-8f5a820d147da36bcdbddd201b35d293699dacd8.tar.bz2 |
fix spuriously slow check in twoway strstr/memmem cores
mem0 && mem && ... is redundant since mem can only be nonzero when
mem0 is nonzero.
-rw-r--r-- | src/string/memmem.c | 2 | ||||
-rw-r--r-- | src/string/strstr.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/string/memmem.c b/src/string/memmem.c index 54a66e4..ce3cd19 100644 --- a/src/string/memmem.c +++ b/src/string/memmem.c @@ -100,7 +100,7 @@ static char *twoway_memmem(const unsigned char *h, const unsigned char *z, const if (BITOP(byteset, h[l-1], &)) { k = l-shift[h[l-1]]; if (k) { - if (mem0 && mem && k < p) k = l-p; + if (mem && k < p) k = l-p; h += k; mem = 0; continue; diff --git a/src/string/strstr.c b/src/string/strstr.c index cd06912..c80e9ca 100644 --- a/src/string/strstr.c +++ b/src/string/strstr.c @@ -110,7 +110,7 @@ static char *twoway_strstr(const unsigned char *h, const unsigned char *n) k = l-shift[h[l-1]]; //printf("adv by %zu (on %c) at [%s] (%zu;l=%zu)\n", k, h[l-1], h, shift[h[l-1]], l); if (k) { - if (mem0 && mem && k < p) k = l-p; + if (mem && k < p) k = l-p; h += k; mem = 0; continue; |