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,
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);