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 {
114
114
115
115
#ifdef ENABLE_SIMD
116
116
const char * chunk_base ;
117
+ const char * chunk_end ;
117
118
uint8_t has_matches ;
118
119
119
120
#ifdef HAVE_SIMD_NEON
@@ -344,11 +345,7 @@ static inline unsigned char search_escape_basic_neon(search_state *search)
344
345
// neon_next_match will only advance search->ptr up to the last matching character.
345
346
// Skip over any characters in the last chunk that occur after the last match.
346
347
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 ;
352
349
}
353
350
}
354
351
@@ -403,6 +400,7 @@ static inline unsigned char search_escape_basic_neon(search_state *search)
403
400
search -> matches_mask = mask ;
404
401
search -> has_matches = 1 ;
405
402
search -> chunk_base = search -> ptr ;
403
+ search -> chunk_end = search -> ptr + sizeof (uint8x16_t );
406
404
return neon_next_match (search );
407
405
}
408
406
@@ -425,6 +423,7 @@ static inline unsigned char search_escape_basic_neon(search_state *search)
425
423
426
424
search -> matches_mask = neon_match_mask (needs_escape );
427
425
search -> has_matches = 1 ;
426
+ search -> chunk_end = search -> end ;
428
427
search -> chunk_base = search -> ptr ;
429
428
return neon_next_match (search );
430
429
}
You can’t perform that action at this time.
0 commit comments