Fix wrong pointer calculation in LZMA encoder.

This commit is contained in:
Lasse Collin 2008-08-31 11:47:01 +03:00
parent 3b34851de1
commit ede675f9ac
1 changed files with 3 additions and 1 deletions

View File

@ -165,8 +165,10 @@ match(lzma_coder *coder, const uint32_t pos_state,
const uint32_t pos_reduced = distance - base;
if (pos_slot < END_POS_MODEL_INDEX) {
// Careful here: base - pos_slot - 1 can be -1, but
// rc_bittree_reverse starts at probs[1], not probs[0].
rc_bittree_reverse(&coder->rc,
&coder->pos_special[base - pos_slot - 1],
coder->pos_special + base - pos_slot - 1,
footer_bits, pos_reduced);
} else {
rc_direct(&coder->rc, pos_reduced >> ALIGN_BITS,