diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index c28b43456..08bfd54c3 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -2992,40 +2992,145 @@ ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_paramS static const ZSTD_blockCompressor blockCompressor[4][ZSTD_STRATEGY_MAX+1] = { { ZSTD_compressBlock_fast /* default for 0 */, ZSTD_compressBlock_fast, +#ifdef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_doubleFast, +#endif +#ifdef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_greedy, +#endif +#ifdef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_lazy, +#endif +#ifdef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_lazy2, +#endif +#ifdef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_btlazy2, +#endif +#ifdef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_btopt, +#endif +#ifdef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_btultra, - ZSTD_compressBlock_btultra2 }, +#endif +#ifdef ZSTD_EXCLUDE_BTULTRA2_BLOCK_COMPRESSOR + NULL +#else + ZSTD_compressBlock_btultra2 +#endif + }, { ZSTD_compressBlock_fast_extDict /* default for 0 */, ZSTD_compressBlock_fast_extDict, +#ifdef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_doubleFast_extDict, +#endif +#ifdef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_greedy_extDict, +#endif +#ifdef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_lazy_extDict, +#endif +#ifdef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_lazy2_extDict, +#endif +#ifdef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_btlazy2_extDict, +#endif +#ifdef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_btopt_extDict, +#endif +#ifdef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR + NULL, + NULL +#else ZSTD_compressBlock_btultra_extDict, - ZSTD_compressBlock_btultra_extDict }, + ZSTD_compressBlock_btultra_extDict +#endif + }, { ZSTD_compressBlock_fast_dictMatchState /* default for 0 */, ZSTD_compressBlock_fast_dictMatchState, +#ifdef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_doubleFast_dictMatchState, +#endif +#ifdef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_greedy_dictMatchState, +#endif +#ifdef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_lazy_dictMatchState, +#endif +#ifdef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_lazy2_dictMatchState, +#endif +#ifdef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_btlazy2_dictMatchState, +#endif +#ifdef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_btopt_dictMatchState, +#endif +#ifdef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR + NULL, + NULL +#else ZSTD_compressBlock_btultra_dictMatchState, - ZSTD_compressBlock_btultra_dictMatchState }, + ZSTD_compressBlock_btultra_dictMatchState +#endif + }, { NULL /* default for 0 */, NULL, NULL, +#ifdef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_greedy_dedicatedDictSearch, +#endif +#ifdef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_lazy_dedicatedDictSearch, +#endif +#ifdef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR + NULL, +#else ZSTD_compressBlock_lazy2_dedicatedDictSearch, +#endif NULL, NULL, NULL, @@ -3038,18 +3143,74 @@ ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_paramS DEBUGLOG(4, "Selected block compressor: dictMode=%d strat=%d rowMatchfinder=%d", (int)dictMode, (int)strat, (int)useRowMatchFinder); if (ZSTD_rowMatchFinderUsed(strat, useRowMatchFinder)) { static const ZSTD_blockCompressor rowBasedBlockCompressors[4][3] = { - { ZSTD_compressBlock_greedy_row, - ZSTD_compressBlock_lazy_row, - ZSTD_compressBlock_lazy2_row }, - { ZSTD_compressBlock_greedy_extDict_row, - ZSTD_compressBlock_lazy_extDict_row, - ZSTD_compressBlock_lazy2_extDict_row }, - { ZSTD_compressBlock_greedy_dictMatchState_row, - ZSTD_compressBlock_lazy_dictMatchState_row, - ZSTD_compressBlock_lazy2_dictMatchState_row }, - { ZSTD_compressBlock_greedy_dedicatedDictSearch_row, - ZSTD_compressBlock_lazy_dedicatedDictSearch_row, - ZSTD_compressBlock_lazy2_dedicatedDictSearch_row } + { +#ifdef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_greedy_row, +#endif +#ifdef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_lazy_row, +#endif +#ifdef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_lazy2_row +#endif + }, + { +#ifdef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_greedy_extDict_row, +#endif +#ifdef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_lazy_extDict_row, +#endif +#ifdef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_lazy2_extDict_row +#endif + }, + { +#ifdef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_greedy_dictMatchState_row, +#endif +#ifdef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_lazy_dictMatchState_row, +#endif +#ifdef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_lazy2_dictMatchState_row +#endif + }, + { +#ifdef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_greedy_dedicatedDictSearch_row, +#endif +#ifdef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_lazy_dedicatedDictSearch_row, +#endif +#ifdef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR + NULL, +#else + ZSTD_compressBlock_lazy2_dedicatedDictSearch_row +#endif + } }; DEBUGLOG(4, "Selecting a row-based matchfinder"); assert(useRowMatchFinder != ZSTD_ps_auto);