From 6e5ef3ea7f12c3220dddb747c78d434566c55a37 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Wed, 27 Jan 2016 00:50:36 -0600 Subject: [PATCH] decompress: no extra condition is needed when calculating subtable length --- src/deflate_decompress.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/deflate_decompress.c b/src/deflate_decompress.c index 7d3bed0..5dee7b5 100644 --- a/src/deflate_decompress.c +++ b/src/deflate_decompress.c @@ -661,10 +661,14 @@ build_decode_table(u32 decode_table[], * there are fewer than 2**n codewords of length * 'table_bits + n' remaining, then n will need to be * incremented to bring in longer codewords until the - * subtable can be filled completely. */ + * subtable can be filled completely. Note that it + * always will, eventually, be possible to fill the + * subtable, since the only case where we may have an + * incomplete code is a single codeword of length 1, + * and that never requires any subtables. */ cur_table_bits = codeword_len - table_bits; remainder = (s32)1 << cur_table_bits; - while (table_bits + cur_table_bits < max_codeword_len) { + for (;;) { remainder -= len_counts[table_bits + cur_table_bits]; if (remainder <= 0)