From: Yann Collet Date: Fri, 20 Nov 2015 11:04:52 +0000 (+0100) Subject: modified format X-Git-Tag: zstd-0.4.0^2~23^2~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=55aa7f94e3dfbc35f3ad2f427674ef529db5840c;p=thirdparty%2Fzstd.git modified format --- diff --git a/lib/zstd_decompress.c b/lib/zstd_decompress.c index c6938d48b..430dc7aca 100644 --- a/lib/zstd_decompress.c +++ b/lib/zstd_decompress.c @@ -404,8 +404,7 @@ static void ZSTD_decodeSequence(seq_t* seq, seqState_t* seqState) /* Literal length */ litLength = FSE_decodeSymbol(&(seqState->stateLL), &(seqState->DStream)); - prevOffset = litLength ? seq->offset : seqState->prevOffset; - seqState->prevOffset = seq->offset; + prevOffset = litLength ? seq->offset : seqState->prevOffset; if (litLength == MaxLL) { U32 add = *dumps++; @@ -432,6 +431,7 @@ static void ZSTD_decodeSequence(seq_t* seq, seqState_t* seqState) offset = offsetPrefix[offsetCode] + BIT_readBits(&(seqState->DStream), nbBits); if (MEM_32bits()) BIT_reloadDStream(&(seqState->DStream)); if (offsetCode==0) offset = prevOffset; /* cmove */ + if (offsetCode | !litLength) seqState->prevOffset = seq->offset; /* cmove */ } /* MatchLength */