diff options
author | Evgenii Kliuchnikov <eustas@google.com> | 2024-04-14 06:35:19 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-04-14 06:36:02 -0700 |
commit | c1c76e993f1e11a39f7b60395b1196417c86c464 (patch) | |
tree | 86d70a45aa081e816ccf345410a026fb4a9c9deb /c/enc/hash_longest_match_inc.h | |
parent | 709c4672d4a387f56839e47ed6a985cd2f950a8f (diff) | |
download | brotli-c1c76e993f1e11a39f7b60395b1196417c86c464.zip brotli-c1c76e993f1e11a39f7b60395b1196417c86c464.tar.gz brotli-c1c76e993f1e11a39f7b60395b1196417c86c464.tar.bz2 |
Don't check `cur_ix_masked` against `ring_buffer_mask`.
`cur_ix_masked` isn't changing from iteration to iteration, and `max_length` ensures we never find a match long enough to walk off the ring buffer.
PiperOrigin-RevId: 624701948
Diffstat (limited to 'c/enc/hash_longest_match_inc.h')
-rw-r--r-- | c/enc/hash_longest_match_inc.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/c/enc/hash_longest_match_inc.h b/c/enc/hash_longest_match_inc.h index 6de9ba5..c25cdb0 100644 --- a/c/enc/hash_longest_match_inc.h +++ b/c/enc/hash_longest_match_inc.h @@ -169,7 +169,6 @@ static BROTLI_INLINE void FN(FindLongestMatch)( score_t best_score = out->score; size_t best_len = out->len; size_t i; - BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask); out->len = 0; out->len_code_delta = 0; /* Try last distance first. */ @@ -184,7 +183,8 @@ static BROTLI_INLINE void FN(FindLongestMatch)( } prev_ix &= ring_buffer_mask; - if (prev_ix + best_len > ring_buffer_mask || + if (cur_ix_masked + best_len > ring_buffer_mask || + prev_ix + best_len > ring_buffer_mask || data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { continue; } @@ -228,7 +228,8 @@ static BROTLI_INLINE void FN(FindLongestMatch)( break; } prev_ix &= ring_buffer_mask; - if (prev_ix + best_len > ring_buffer_mask || + if (cur_ix_masked + best_len > ring_buffer_mask || + prev_ix + best_len > ring_buffer_mask || /* compare 4 bytes ending at best_len + 1 */ BrotliUnalignedRead32(&data[cur_ix_masked + best_len - 3]) != BrotliUnalignedRead32(&data[prev_ix + best_len - 3])) { |