aboutsummaryrefslogtreecommitdiff
path: root/c/enc/hash_forgetful_chain_inc.h
diff options
context:
space:
mode:
authorBrotli <no-reply@google.com>2024-04-12 06:50:04 -0700
committerCopybara-Service <copybara-worker@google.com>2024-04-12 06:50:51 -0700
commita76d96e7308614b422508679d6905cbe1a8762bf (patch)
treed1c80487b83392410db20c995e53847c862a939a /c/enc/hash_forgetful_chain_inc.h
parenta813a6a1e43650f6ee5ab590051a218bcb958352 (diff)
downloadbrotli-a76d96e7308614b422508679d6905cbe1a8762bf.zip
brotli-a76d96e7308614b422508679d6905cbe1a8762bf.tar.gz
brotli-a76d96e7308614b422508679d6905cbe1a8762bf.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: 624162764
Diffstat (limited to 'c/enc/hash_forgetful_chain_inc.h')
-rw-r--r--c/enc/hash_forgetful_chain_inc.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/c/enc/hash_forgetful_chain_inc.h b/c/enc/hash_forgetful_chain_inc.h
index 9a8efeb..17f31fa 100644
--- a/c/enc/hash_forgetful_chain_inc.h
+++ b/c/enc/hash_forgetful_chain_inc.h
@@ -203,6 +203,7 @@ static BROTLI_INLINE void FN(FindLongestMatch)(
uint8_t* BROTLI_RESTRICT tiny_hashes = FN(TinyHash)(self->extra[0]);
FN(Bank)* BROTLI_RESTRICT banks = FN(Banks)(self->extra[1]);
const size_t cur_ix_masked = cur_ix & ring_buffer_mask;
+ BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask)
/* Don't accept a short copy from far away. */
score_t min_score = out->score;
score_t best_score = out->score;
@@ -260,8 +261,7 @@ static BROTLI_INLINE void FN(FindLongestMatch)(
prev_ix = (cur_ix - backward) & ring_buffer_mask;
slot = banks[bank].slots[last].next;
delta = banks[bank].slots[last].delta;
- if (cur_ix_masked + best_len > ring_buffer_mask ||
- prev_ix + best_len > ring_buffer_mask ||
+ if (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])) {