Fix one-off in dcheck. How to prove correctness: 1) when `position` is `0`, `max_length` is allowed to be `ringbuffer_size` 2) in other words: `position + max_length <= ringbuffer_size` 3) `ringbuffer_mask == ringbuffer_size - 1` 4) thus `position + max_length <= ringbuffer_size + 1` PiperOrigin-RevId: 835164941
diff --git a/c/enc/hash.h b/c/enc/hash.h index d86fa18..eb9e455 100644 --- a/c/enc/hash.h +++ b/c/enc/hash.h
@@ -545,7 +545,7 @@ source = (const uint8_t*)BROTLI_UNALIGNED_LOAD_PTR((const uint8_t**)tail); } - BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask); + BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask + 1); for (i = 0; i < 4; ++i) { const size_t distance = (size_t)distance_cache[i]; @@ -656,7 +656,7 @@ source = (const uint8_t*)BROTLI_UNALIGNED_LOAD_PTR((const uint8_t**)tail); } - BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask); + BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask + 1); while (item == 0) { size_t offset;
diff --git a/c/enc/hash_forgetful_chain_inc.h b/c/enc/hash_forgetful_chain_inc.h index c44276f..b653698 100644 --- a/c/enc/hash_forgetful_chain_inc.h +++ b/c/enc/hash_forgetful_chain_inc.h
@@ -213,7 +213,7 @@ out->len = 0; out->len_code_delta = 0; - BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask); + BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask + 1); /* Try last distance first. */ for (i = 0; i < NUM_LAST_DISTANCES_TO_CHECK; ++i) {
diff --git a/c/enc/hash_longest_match64_inc.h b/c/enc/hash_longest_match64_inc.h index bdbb30a..3131451 100644 --- a/c/enc/hash_longest_match64_inc.h +++ b/c/enc/hash_longest_match64_inc.h
@@ -178,7 +178,7 @@ out->len = 0; out->len_code_delta = 0; - BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask); + BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask + 1); /* Try last distance first. */ for (i = 0; i < (size_t)self->num_last_distances_to_check_; ++i) {
diff --git a/c/enc/hash_longest_match64_simd_inc.h b/c/enc/hash_longest_match64_simd_inc.h index 12bd8cf..17dc67d 100644 --- a/c/enc/hash_longest_match64_simd_inc.h +++ b/c/enc/hash_longest_match64_simd_inc.h
@@ -195,7 +195,7 @@ out->len = 0; out->len_code_delta = 0; - BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask); + BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask + 1); /* Try last distance first. */ for (i = 0; i < (size_t)self->num_last_distances_to_check_; ++i) {
diff --git a/c/enc/hash_longest_match_inc.h b/c/enc/hash_longest_match_inc.h index 58e88b3..674dced 100644 --- a/c/enc/hash_longest_match_inc.h +++ b/c/enc/hash_longest_match_inc.h
@@ -178,7 +178,7 @@ out->len = 0; out->len_code_delta = 0; - BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask); + BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask + 1); /* Try last distance first. */ for (i = 0; i < (size_t)self->num_last_distances_to_check_; ++i) {
diff --git a/c/enc/hash_longest_match_quickly_inc.h b/c/enc/hash_longest_match_quickly_inc.h index 57ed586..9db75cc 100644 --- a/c/enc/hash_longest_match_quickly_inc.h +++ b/c/enc/hash_longest_match_quickly_inc.h
@@ -165,7 +165,7 @@ size_t cached_backward = (size_t)distance_cache[0]; size_t prev_ix = cur_ix - cached_backward; - BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask); + BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask + 1); out->len_code_delta = 0; if (prev_ix < cur_ix) {
diff --git a/c/enc/hash_longest_match_simd_inc.h b/c/enc/hash_longest_match_simd_inc.h index 79b341a..075f6da 100644 --- a/c/enc/hash_longest_match_simd_inc.h +++ b/c/enc/hash_longest_match_simd_inc.h
@@ -170,7 +170,7 @@ out->len = 0; out->len_code_delta = 0; - BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask); + BROTLI_DCHECK(cur_ix_masked + max_length <= ring_buffer_mask + 1); /* Try last distance first. */ for (i = 0; i < (size_t)self->num_last_distances_to_check_; ++i) {