@@ -115,7 +115,7 @@ typedef struct _search_state {
115
115
#ifdef ENABLE_SIMD
116
116
const char * chunk_base ;
117
117
const char * chunk_end ;
118
- uint8_t has_matches ;
118
+ bool has_matches ;
119
119
120
120
#ifdef HAVE_SIMD_NEON
121
121
uint64_t matches_mask ;
@@ -223,11 +223,8 @@ static inline FORCE_INLINE void escape_UTF8_char_basic(search_state *search)
223
223
*/
224
224
static inline void convert_UTF8_to_JSON (search_state * search )
225
225
{
226
- unsigned char num_chars = 0 ;
227
- while ((num_chars = search_escape_basic_impl (search ))) {
228
- do {
229
- escape_UTF8_char_basic (search );
230
- } while (-- num_chars );
226
+ while (search_escape_basic_impl (search )) {
227
+ escape_UTF8_char_basic (search );
231
228
}
232
229
}
233
230
@@ -344,7 +341,7 @@ static inline unsigned char search_escape_basic_neon(search_state *search)
344
341
} else {
345
342
// neon_next_match will only advance search->ptr up to the last matching character.
346
343
// Skip over any characters in the last chunk that occur after the last match.
347
- search -> has_matches = 0 ;
344
+ search -> has_matches = false ;
348
345
search -> ptr = search -> chunk_end ;
349
346
}
350
347
}
@@ -398,7 +395,7 @@ static inline unsigned char search_escape_basic_neon(search_state *search)
398
395
continue ;
399
396
}
400
397
search -> matches_mask = mask ;
401
- search -> has_matches = 1 ;
398
+ search -> has_matches = true ;
402
399
search -> chunk_base = search -> ptr ;
403
400
search -> chunk_end = search -> ptr + sizeof (uint8x16_t );
404
401
return neon_next_match (search );
@@ -422,7 +419,7 @@ static inline unsigned char search_escape_basic_neon(search_state *search)
422
419
}
423
420
424
421
search -> matches_mask = neon_match_mask (needs_escape );
425
- search -> has_matches = 1 ;
422
+ search -> has_matches = true ;
426
423
search -> chunk_end = search -> end ;
427
424
search -> chunk_base = search -> ptr ;
428
425
return neon_next_match (search );
@@ -490,7 +487,7 @@ static inline TARGET_SSE2 FORCE_INLINE unsigned char search_escape_basic_sse2(se
490
487
} else {
491
488
// sse2_next_match will only advance search->ptr up to the last matching character.
492
489
// Skip over any characters in the last chunk that occur after the last match.
493
- search -> has_matches = 0 ;
490
+ search -> has_matches = false ;
494
491
if (RB_UNLIKELY (search -> chunk_base + sizeof (__m128i ) >= search -> end )) {
495
492
search -> ptr = search -> end ;
496
493
} else {
@@ -510,11 +507,7 @@ static inline TARGET_SSE2 FORCE_INLINE unsigned char search_escape_basic_sse2(se
510
507
continue ;
511
508
}
512
509
513
- if (popcount32 (needs_escape_mask ) >= sizeof (__m128i )/2 ) {
514
- return sizeof (__m128i );
515
- }
516
-
517
- search -> has_matches = 1 ;
510
+ search -> has_matches = true;
518
511
search -> matches_mask = needs_escape_mask ;
519
512
search -> chunk_base = search -> ptr ;
520
513
return sse2_next_match (search );
@@ -539,11 +532,7 @@ static inline TARGET_SSE2 FORCE_INLINE unsigned char search_escape_basic_sse2(se
539
532
return 0 ;
540
533
}
541
534
542
- if (popcount32 (needs_escape_mask ) >= sizeof (__m128i )/2 ) {
543
- return remaining ;
544
- }
545
-
546
- search -> has_matches = 1 ;
535
+ search -> has_matches = true;
547
536
search -> matches_mask = needs_escape_mask ;
548
537
search -> chunk_base = search -> ptr ;
549
538
return sse2_next_match (search );
@@ -1310,7 +1299,7 @@ static void generate_json_string(FBuffer *buffer, struct generate_json_data *dat
1310
1299
1311
1300
#ifdef ENABLE_SIMD
1312
1301
search .matches_mask = 0 ;
1313
- search .has_matches = 0 ;
1302
+ search .has_matches = false ;
1314
1303
search .chunk_base = NULL ;
1315
1304
#endif /* ENABLE_SIMD */
1316
1305
0 commit comments