From 478d96328a11764c422e89db85013371eaaa1e5c Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Fri, 6 Oct 2017 12:30:33 +1100 Subject: [PATCH] Fix huffman decoding bug. Now to implement LZ77 bit of deflate --- src/Client/Deflate.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Client/Deflate.c b/src/Client/Deflate.c index b145a923b..fdbe88ba4 100644 --- a/src/Client/Deflate.c +++ b/src/Client/Deflate.c @@ -278,10 +278,10 @@ Int32 Huffman_Decode(DeflateState* state, HuffmanTable* table) { /* Slow, bit by bit lookup */ Int32 codeword = 0; - UInt32 i; - for (i = 1; i < DEFLATE_MAX_BITS; i++) { + UInt32 i, j; + for (i = 1, j = 0; i < DEFLATE_MAX_BITS; i++, j++) { if (state->NumBits < i) return -1; - codeword = (codeword << 1) | ((state->Bits >> i) & 1); + codeword = (codeword << 1) | ((state->Bits >> j) & 1); if (codeword >= table->FirstCodewords[i] && codeword <= table->EndCodewords[i]) { Int32 offset = table->FirstOffsets[i] + (codeword - table->FirstCodewords[i]);