u16 adjusted_length;
/* If bit 31 is clear, then this field contains the match header in bits
- * 0-8 and the match offset minus LZX_OFFSET_ADJUSTMENT in bits 9-30.
- * Otherwise, this sequence's literal run was the last literal run in
- * the block, so there is no match that follows it. */
+ * 0-8, and either the match offset plus LZX_OFFSET_ADJUSTMENT or a
+ * recent offset code in bits 9-30. Otherwise (if bit 31 is set), this
+ * sequence's literal run was the last literal run in the block, so
+ * there is no match that follows it. */
u32 adjusted_offset_and_match_hdr;
};
if (os->end - os->next < 6)
return;
- put_unaligned_u16_le(os->bitbuf >> ((os->bitcount - 16) &
+ put_unaligned_le16(os->bitbuf >> ((os->bitcount - 16) &
shift_mask), os->next + 0);
if (max_num_bits > 16)
- put_unaligned_u16_le(os->bitbuf >> ((os->bitcount - 32) &
+ put_unaligned_le16(os->bitbuf >> ((os->bitcount - 32) &
shift_mask), os->next + 2);
if (max_num_bits > 32)
- put_unaligned_u16_le(os->bitbuf >> ((os->bitcount - 48) &
+ put_unaligned_le16(os->bitbuf >> ((os->bitcount - 48) &
shift_mask), os->next + 4);
os->next += (os->bitcount >> 4) << 1;
os->bitcount &= 15;
return 0;
if (os->bitcount != 0) {
- put_unaligned_u16_le(os->bitbuf << (16 - os->bitcount), os->next);
+ put_unaligned_le16(os->bitbuf << (16 - os->bitcount), os->next);
os->next += 2;
}