summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2021-01-30 09:56:27 +0100
committerDaniel Friesel <derf@finalrewind.org>2021-01-30 09:56:27 +0100
commitdb4aac34e9dd6778c132badb7ea000c2684392f9 (patch)
treead4b27343de424749dce4d3dffac70c08e2ea212
parent32eb28dc43b0b6e53fc1330a4ae3af56af0ff750 (diff)
fix dictionary generation bug for static huffman blocks
-rw-r--r--src/inflate.c14
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()