File tree Expand file tree Collapse file tree 1 file changed +4
-5
lines changed
Expand file tree Collapse file tree 1 file changed +4
-5
lines changed Original file line number Diff line number Diff line change @@ -114,6 +114,7 @@ typedef struct _search_state {
114114
115115#ifdef ENABLE_SIMD
116116 const char * chunk_base ;
117+ const char * chunk_end ;
117118 uint8_t has_matches ;
118119
119120#ifdef HAVE_SIMD_NEON
@@ -344,11 +345,7 @@ static inline unsigned char search_escape_basic_neon(search_state *search)
344345 // neon_next_match will only advance search->ptr up to the last matching character.
345346 // Skip over any characters in the last chunk that occur after the last match.
346347 search -> has_matches = 0 ;
347- if (RB_UNLIKELY (search -> chunk_base + sizeof (uint8x16_t ) >= search -> end )) {
348- search -> ptr = search -> end ;
349- } else {
350- search -> ptr = search -> chunk_base + sizeof (uint8x16_t );
351- }
348+ search -> ptr = search -> chunk_end ;
352349 }
353350 }
354351
@@ -403,6 +400,7 @@ static inline unsigned char search_escape_basic_neon(search_state *search)
403400 search -> matches_mask = mask ;
404401 search -> has_matches = 1 ;
405402 search -> chunk_base = search -> ptr ;
403+ search -> chunk_end = search -> ptr + sizeof (uint8x16_t );
406404 return neon_next_match (search );
407405 }
408406
@@ -425,6 +423,7 @@ static inline unsigned char search_escape_basic_neon(search_state *search)
425423
426424 search -> matches_mask = neon_match_mask (needs_escape );
427425 search -> has_matches = 1 ;
426+ search -> chunk_end = search -> end ;
428427 search -> chunk_base = search -> ptr ;
429428 return neon_next_match (search );
430429 }
You can’t perform that action at this time.
0 commit comments