diff options
Diffstat (limited to 'src/engine/e_huffman.c')
| -rw-r--r-- | src/engine/e_huffman.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/engine/e_huffman.c b/src/engine/e_huffman.c index f2e58f0c..dfb5c817 100644 --- a/src/engine/e_huffman.c +++ b/src/engine/e_huffman.c @@ -1,11 +1,11 @@ +#include <base/system.h> #include <stdlib.h> #include <string.h> -#include <engine/e_system.h> #include <engine/e_huffman.h> void huffman_init(HUFFSTATE *huff) { - mem_zero(huff, sizeof(huff)); + mem_zero(huff, sizeof(HUFFSTATE)); huff->nodes[0].frequency = 1; huff->nodes[0].symbol_size = -1; huff->num_symbols++; @@ -160,7 +160,10 @@ static void bitio_init(HUFFBITIO *bitio, unsigned char *data) static void bitio_flush(HUFFBITIO *bitio) { - *bitio->data = bitio->current_bits; + if(bitio->num == 8) + *bitio->data = bitio->current_bits << (8-bitio->num); + else + *bitio->data = bitio->current_bits; bitio->data++; bitio->num = 0; bitio->current_bits = 0; |