diff options
author | Daniel Friesel <derf@finalrewind.org> | 2021-01-30 09:56:27 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2021-01-30 09:56:27 +0100 |
commit | db4aac34e9dd6778c132badb7ea000c2684392f9 (patch) | |
tree | ad4b27343de424749dce4d3dffac70c08e2ea212 /src | |
parent | 32eb28dc43b0b6e53fc1330a4ae3af56af0ff750 (diff) |
fix dictionary generation bug for static huffman blocks
Diffstat (limited to 'src')
-rw-r--r-- | src/inflate.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/inflate.c b/src/inflate.c index 16e557c..27dcc79 100644 --- a/src/inflate.c +++ b/src/inflate.c @@ -88,7 +88,7 @@ uint8_t deflate_hc_lengths[19]; /* * Code lengths of the literal/length and distance alphabets. - * up to 286 literal/length codes + up to 32 distance codes. + * up to 288 literal/length codes + up to 30 distance codes. */ uint8_t deflate_lld_lengths[318]; @@ -306,19 +306,19 @@ static int8_t deflate_static_huffman() for (i = 256; i <= 279; i++) { deflate_lld_lengths[i] = 7; } - for (i = 280; i <= 285; i++) { + for (i = 280; i <= 287; i++) { deflate_lld_lengths[i] = 8; } - for (i = 286; i <= 286 + 29; i++) { + for (i = 288; i <= 288 + 29; i++) { deflate_lld_lengths[i] = 5; } - deflate_build_alphabet(deflate_lld_lengths, 286, deflate_bl_count_ll, + deflate_build_alphabet(deflate_lld_lengths, 288, deflate_bl_count_ll, deflate_next_code_ll); - deflate_build_alphabet(deflate_lld_lengths + 286, 29, + deflate_build_alphabet(deflate_lld_lengths + 288, 29, deflate_bl_count_d, deflate_next_code_d); - return deflate_huffman(deflate_lld_lengths, 286, - deflate_lld_lengths + 286, 29); + return deflate_huffman(deflate_lld_lengths, 288, + deflate_lld_lengths + 288, 29); } static int8_t deflate_dynamic_huffman() |