mirror of
https://github.com/php/php-src.git
synced 2024-09-22 18:37:25 +00:00
Compute needle end only after checking it's non-empty
This commit is contained in:
parent
8cefd7c5ce
commit
937d5f6598
@ -148,7 +148,6 @@ static zend_always_inline const char *
|
||||
zend_memnstr(const char *haystack, const char *needle, size_t needle_len, const char *end)
|
||||
{
|
||||
const char *p = haystack;
|
||||
const char ne = needle[needle_len-1];
|
||||
ptrdiff_t off_p;
|
||||
size_t off_s;
|
||||
|
||||
@ -168,6 +167,7 @@ zend_memnstr(const char *haystack, const char *needle, size_t needle_len, const
|
||||
}
|
||||
|
||||
if (EXPECTED(off_s < 1024 || needle_len < 9)) { /* glibc memchr is faster when needle is too short */
|
||||
const char ne = needle[needle_len-1];
|
||||
end -= needle_len;
|
||||
|
||||
while (p <= end) {
|
||||
@ -210,7 +210,6 @@ static zend_always_inline const char *
|
||||
zend_memnrstr(const char *haystack, const char *needle, size_t needle_len, const char *end)
|
||||
{
|
||||
const char *p = end;
|
||||
const char ne = needle[needle_len-1];
|
||||
ptrdiff_t off_p;
|
||||
size_t off_s;
|
||||
|
||||
@ -230,6 +229,7 @@ zend_memnrstr(const char *haystack, const char *needle, size_t needle_len, const
|
||||
}
|
||||
|
||||
if (EXPECTED(off_s < 1024 || needle_len < 3)) {
|
||||
const char ne = needle[needle_len-1];
|
||||
p -= needle_len;
|
||||
|
||||
do {
|
||||
|
Loading…
Reference in New Issue
Block a user