summaryrefslogtreecommitdiff
path: root/deflate.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2007-02-13 19:23:47 +0000
committerSimon Tatham <anakin@pobox.com>2007-02-13 19:23:47 +0000
commitd324fe8cc1372360f49cfcfd34261cacc886d79c (patch)
treeba97d4affdcfcfadacb85198a0f0e53324888448 /deflate.c
parent3efa13587b73dd8a64ca8bdc149e8ff9b97376e9 (diff)
downloadhalibut-d324fe8cc1372360f49cfcfd34261cacc886d79c.zip
halibut-d324fe8cc1372360f49cfcfd34261cacc886d79c.tar.gz
halibut-d324fe8cc1372360f49cfcfd34261cacc886d79c.tar.bz2
halibut-d324fe8cc1372360f49cfcfd34261cacc886d79c.tar.xz
When building the static Huffman tables, it's vital to include the
two unused entries at the end of the lit/len table (286 and 287), because without them all the 9-bit codes are off by four. I can only assume I hadn't noticed this before because no test file I've compressed had both (a) contained byte values >= 0x90 and (b) required a static block. [originally from svn r7279]
Diffstat (limited to 'deflate.c')
-rw-r--r--deflate.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/deflate.c b/deflate.c
index 685097b..8749397 100644
--- a/deflate.c
+++ b/deflate.c
@@ -651,8 +651,8 @@ struct deflate_compress_ctx {
unsigned long datasize;
int lastblock;
int finished;
- unsigned char static_len1[286], static_len2[30];
- int static_code1[286], static_code2[30];
+ unsigned char static_len1[288], static_len2[30];
+ int static_code1[288], static_code2[30];
struct huftrees sht;
#ifdef STATISTICS
unsigned long bitcount;