From: Yann Collet Date: Fri, 9 Feb 2018 12:50:58 +0000 (-0800) Subject: fixed default fse distributions X-Git-Tag: v1.3.4~1^2~58^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=421a2716d8e9c6ed796357810c8502aa4002222e;p=thirdparty%2Fzstd.git fixed default fse distributions but would be better to pre-calculate tables, for speed --- diff --git a/lib/decompress/zstd_decompress.c b/lib/decompress/zstd_decompress.c index 215dfd482..0181351b1 100644 --- a/lib/decompress/zstd_decompress.c +++ b/lib/decompress/zstd_decompress.c @@ -82,8 +82,8 @@ typedef enum { zdss_init=0, zdss_loadHeader, typedef struct { - U32 tableLog; U32 fastMode; + U32 tableLog; } ZSTD_seqSymbol_header; typedef struct { @@ -665,28 +665,22 @@ size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, } } - -typedef union { - FSE_decode_t realData; - FSE_DTable dtable; - U32 alignedBy4; -} FSE_decode_t4; - +#if 0 /* Default FSE distribution table for Literal Lengths */ -static const FSE_decode_t4 LL_defaultDTable[(1<dtable; + //*DTablePtr = &defaultTable->dtable; + ZSTD_buildFSETable(DTableSpace, defaultNorm, max, baseValue, nbAdditionalBits, defaultLog); + *DTablePtr = DTableSpace; return 0; case set_repeat: if (!flagRepeatTable) return ERROR(corruption_detected); @@ -922,7 +919,7 @@ size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, LLtype, MaxLL, LLFSELog, ip, iend-ip, LL_base, LL_bits, - LL_defaultDTable, dctx->fseEntropy); + LL_defaultNorm, LL_defaultNormLog, dctx->fseEntropy); if (ZSTD_isError(llhSize)) return ERROR(corruption_detected); ip += llhSize; } @@ -931,7 +928,7 @@ size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, OFtype, MaxOff, OffFSELog, ip, iend-ip, OF_base, OF_bits, - OF_defaultDTable, dctx->fseEntropy); + OF_defaultNorm, OF_defaultNormLog, dctx->fseEntropy); if (ZSTD_isError(ofhSize)) return ERROR(corruption_detected); ip += ofhSize; } @@ -940,7 +937,7 @@ size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, MLtype, MaxML, MLFSELog, ip, iend-ip, ML_base, ML_bits, - ML_defaultDTable, dctx->fseEntropy); + ML_defaultNorm, ML_defaultNormLog, dctx->fseEntropy); if (ZSTD_isError(mlhSize)) return ERROR(corruption_detected); ip += mlhSize; }