2-byte last distance pre-check. PiperOrigin-RevId: 990730191
diff --git a/c/enc/hash_longest_match_simd_opt_inc.h b/c/enc/hash_longest_match_simd_opt_inc.h index df9aa66..9a51301 100644 --- a/c/enc/hash_longest_match_simd_opt_inc.h +++ b/c/enc/hash_longest_match_simd_opt_inc.h
@@ -170,6 +170,9 @@ out->len = 0; out->len_code_delta = 0; + if (best_len < 1) { + best_len = 1; + } /* Try last distance first. */ for (i = 0; i < (size_t)self->num_last_distances_to_check_; ++i) { const size_t backward = (size_t)distance_cache[i]; @@ -186,7 +189,8 @@ break; } if (prev_ix + best_len > ring_buffer_mask || - data[cur_ix_masked + best_len] != data[prev_ix + best_len]) { + BrotliUnalignedRead16(&data[cur_ix_masked + best_len - 1]) != + BrotliUnalignedRead16(&data[prev_ix + best_len - 1])) { continue; } {