From 9f8bcf7769695e214c239619d63b1db2c96043dc Mon Sep 17 00:00:00 2001 From: atxr Date: Wed, 21 Feb 2024 16:11:01 +0100 Subject: [PATCH] Align to next byte --- libmineziper/include/libmineziper_bitstream.h | 1 + libmineziper/src/libmineziper_bitstream.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/libmineziper/include/libmineziper_bitstream.h b/libmineziper/include/libmineziper_bitstream.h index 52e0e3c..36d399f 100644 --- a/libmineziper/include/libmineziper_bitstream.h +++ b/libmineziper/include/libmineziper_bitstream.h @@ -17,6 +17,7 @@ unsigned int get_bits(bitstream *bs, unsigned int size); void print_bits(int x, int size); unsigned int reverse(unsigned int x, unsigned int numBits); bitstream init_bitstream(char *data, int size, int last_bit_offset); +void align_to_next_byte(bitstream *bs); static const unsigned char reverse8[256] = { 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, diff --git a/libmineziper/src/libmineziper_bitstream.c b/libmineziper/src/libmineziper_bitstream.c index c833aff..3cab8cb 100644 --- a/libmineziper/src/libmineziper_bitstream.c +++ b/libmineziper/src/libmineziper_bitstream.c @@ -37,7 +37,6 @@ unsigned int get_bits(bitstream* bs, unsigned int bit_num) unsigned int reverse(unsigned int x, unsigned int numBits) { - assert(x < (unsigned int) (1 << numBits)); // fast lookup if it fits in a byte @@ -88,4 +87,13 @@ bitstream init_bitstream(char* data, int size, int last_bit_offset) .last_bit_offset = last_bit_offset}; return bs; -} \ No newline at end of file +} + +void align_to_next_byte(bitstream* bs) +{ + if (bs->current_bit_offset) + { + bs->current_bit_offset = 0; + bs->current_data_offset++; + } +}