bitstream_put_bits(struct output_bitstream *ostream, u32 bits,
unsigned num_bits)
{
+ bits &= (1U << num_bits) - 1;
while (num_bits > ostream->free_bits) {
/* Buffer variable does not have space for the new bits. It
* needs to be flushed as a 16-bit integer. Bits in the second
bitstream_put_bits(ostream, 0, 1);
if (max_window_size >= 65536)
- bitstream_put_bits(ostream, (block_size >> 16) & 0xff, 8);
+ bitstream_put_bits(ostream, block_size >> 16, 8);
- bitstream_put_bits(ostream, block_size & 0xffff, 16);
+ bitstream_put_bits(ostream, block_size, 16);
}
/* Write out lengths of the main code. Note that the LZX specification