From: Sen Huang Date: Thu, 7 Nov 2019 14:29:15 +0000 (-0500) Subject: Revert "Move decompress symbols into zstd_internal.h, remove dependency" X-Git-Tag: v1.4.5^2~157^2~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b141b63e009eeaf3d6d2624e3a9a81692f40ebb;p=thirdparty%2Fzstd.git Revert "Move decompress symbols into zstd_internal.h, remove dependency" This reverts commit a152b4c67a5266f611db4a2eac4a79003852a795. --- diff --git a/lib/common/zstd_internal.h b/lib/common/zstd_internal.h index db3ce1fc1..dcdcbdb81 100644 --- a/lib/common/zstd_internal.h +++ b/lib/common/zstd_internal.h @@ -251,34 +251,6 @@ void ZSTD_wildcopy(void* dst, const void* src, ptrdiff_t length, ZSTD_overlap_e /*-******************************************* * Private declarations *********************************************/ -/** - * ZSTD_seqSymbol, ZSTD_entropyDTables_t, ZSTD_loadDEntropy(), and SEQSYMBOL_TABLE_SIZE() - * are used by ZDICT_getDictHeaderSize() and various functions in zstd_decompress.h - */ - - typedef struct { - U16 nextState; - BYTE nbAdditionalBits; - BYTE nbBits; - U32 baseValue; - } ZSTD_seqSymbol; - -#define SEQSYMBOL_TABLE_SIZE(log) (1 + (1 << (log))) - -typedef struct { - ZSTD_seqSymbol LLTable[SEQSYMBOL_TABLE_SIZE(LLFSELog)]; /* Note : Space reserved for FSE Tables */ - ZSTD_seqSymbol OFTable[SEQSYMBOL_TABLE_SIZE(OffFSELog)]; /* is also used as temporary workspace while building hufTable during DDict creation */ - ZSTD_seqSymbol MLTable[SEQSYMBOL_TABLE_SIZE(MLFSELog)]; /* and therefore must be at least HUF_DECOMPRESS_WORKSPACE_SIZE large */ - HUF_DTable hufTable[HUF_DTABLE_SIZE(HufLog)]; /* can accommodate HUF_decompress4X */ - U32 rep[ZSTD_REP_NUM]; -} ZSTD_entropyDTables_t; - -/*! ZSTD_loadDEntropy() : - * dict : must point at beginning of a valid zstd dictionary. - * @return : size of entropy tables read (includes 8-byte magic number and dictionary ID) */ -size_t ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy, - const void* const dict, size_t const dictSize); - typedef struct seqDef_s { U32 offset; U16 litLength; diff --git a/lib/decompress/zstd_decompress_internal.h b/lib/decompress/zstd_decompress_internal.h index 1a71e2364..ccbdfa090 100644 --- a/lib/decompress/zstd_decompress_internal.h +++ b/lib/decompress/zstd_decompress_internal.h @@ -64,6 +64,23 @@ static const U32 ML_base[MaxML+1] = { U32 tableLog; } ZSTD_seqSymbol_header; + typedef struct { + U16 nextState; + BYTE nbAdditionalBits; + BYTE nbBits; + U32 baseValue; + } ZSTD_seqSymbol; + + #define SEQSYMBOL_TABLE_SIZE(log) (1 + (1 << (log))) + +typedef struct { + ZSTD_seqSymbol LLTable[SEQSYMBOL_TABLE_SIZE(LLFSELog)]; /* Note : Space reserved for FSE Tables */ + ZSTD_seqSymbol OFTable[SEQSYMBOL_TABLE_SIZE(OffFSELog)]; /* is also used as temporary workspace while building hufTable during DDict creation */ + ZSTD_seqSymbol MLTable[SEQSYMBOL_TABLE_SIZE(MLFSELog)]; /* and therefore must be at least HUF_DECOMPRESS_WORKSPACE_SIZE large */ + HUF_DTable hufTable[HUF_DTABLE_SIZE(HufLog)]; /* can accommodate HUF_decompress4X */ + U32 rep[ZSTD_REP_NUM]; +} ZSTD_entropyDTables_t; + typedef enum { ZSTDds_getFrameHeaderSize, ZSTDds_decodeFrameHeader, ZSTDds_decodeBlockHeader, ZSTDds_decompressBlock, ZSTDds_decompressLastBlock, ZSTDds_checkChecksum, @@ -141,6 +158,12 @@ struct ZSTD_DCtx_s * Shared internal functions *********************************************************/ +/*! ZSTD_loadDEntropy() : + * dict : must point at beginning of a valid zstd dictionary. + * @return : size of entropy tables read */ +size_t ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy, + const void* const dict, size_t const dictSize); + /*! ZSTD_checkContinuity() : * check if next `dst` follows previous position, where decompression ended. * If yes, do nothing (continue on current segment). diff --git a/lib/dictBuilder/zdict.c b/lib/dictBuilder/zdict.c index 7ea0a2d48..6db57b144 100644 --- a/lib/dictBuilder/zdict.c +++ b/lib/dictBuilder/zdict.c @@ -48,6 +48,7 @@ # define ZDICT_STATIC_LINKING_ONLY #endif #include "zdict.h" +#include "decompress/zstd_decompress_internal.h" /* ZSTD_entropyDTables_t */ /*-************************************* @@ -108,7 +109,6 @@ size_t ZDICT_getDictHeaderSize(const void* dictBuffer, size_t dictSize) if (!dummyEntropyTables) { return 0; } - dummyEntropyTables->hufTable[0] = (HUF_DTable)((HufLog)*0x1000001); headerSize = ZSTD_loadDEntropy(dummyEntropyTables, dictBuffer, dictSize); free(dummyEntropyTables);