From: Yann Collet Date: Mon, 19 Oct 2015 01:36:34 +0000 (+0100) Subject: small decompression speed improvement X-Git-Tag: zstd-0.2.0^2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7ae9ffde33a5e114fd71d0a46df75a6e007790b;p=thirdparty%2Fzstd.git small decompression speed improvement --- diff --git a/lib/zstd.c b/lib/zstd.c index d4c17f330..63ae947dc 100644 --- a/lib/zstd.c +++ b/lib/zstd.c @@ -114,7 +114,7 @@ static const U32 g_searchStrength = 8; #define Offbits 5 #define MaxML ((1<stateOffb), &(seqState->DStream)); + offsetCode = FSE_decodeSymbol(&(seqState->stateOffb), &(seqState->DStream)); /* <= maxOff, by table construction */ if (MEM_32bits()) BIT_reloadDStream(&(seqState->DStream)); nbBits = offsetCode - 1; if (offsetCode==0) nbBits = 0; /* cmove */ - offset = ((size_t)1 << (nbBits & ((sizeof(offset)*8)-1))) + BIT_readBits(&(seqState->DStream), nbBits); + offset = offsetPrefix[offsetCode] + BIT_readBits(&(seqState->DStream), nbBits); if (MEM_32bits()) BIT_reloadDStream(&(seqState->DStream)); if (offsetCode==0) offset = prevOffset; /* cmove */ }