+ ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE)
+ matchStateSize;
ZSTD_CDict* cdict;
+ ZSTD_CCtx_params params;
if ((size_t)workspace & 7) return NULL; /* 8-aligned */
(unsigned)workspaceSize, (unsigned)neededSize, (unsigned)(workspaceSize < neededSize));
if (workspaceSize < neededSize) return NULL;
- ZSTD_CCtx_params params;
ZSTD_memset(¶ms, 0, sizeof(params));
if (ZSTD_isError( ZSTD_initCDict_internal(cdict,
ZSTD_dedicatedDictSearch_defaultCParameters[4][ZSTD_MAX_CLEVEL+1] = {
{ /* "default" - for any dictSize > 256 KB */
/* W, C, H, S, L, TL, strat */
- { 0, 0, 0, 0, 0, 0, 0 }, /* base (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 1 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 2 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 3 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 4 (not adjusted) */
- { 21, 18, 19 + DD_BLOG, 2, 5, 2, ZSTD_greedy }, /* level 5 */
- { 21, 19, 19 + DD_BLOG, 3, 5, 4, ZSTD_greedy }, /* level 6 */
- { 21, 19, 19 + DD_BLOG, 3, 5, 8, ZSTD_lazy }, /* level 7 */
- { 21, 19, 19 + DD_BLOG, 3, 5, 16, ZSTD_lazy2 }, /* level 8 */
- { 21, 19, 20 + DD_BLOG, 4, 5, 16, ZSTD_lazy2 }, /* level 9 */
- { 22, 20, 21 + DD_BLOG, 4, 5, 16, ZSTD_lazy2 }, /* level 10 */
- { 22, 21, 22 + DD_BLOG, 4, 5, 16, ZSTD_lazy2 }, /* level 11 */
- { 22, 21, 22 + DD_BLOG, 5, 5, 16, ZSTD_lazy2 }, /* level 12 */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 13 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 14 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 15 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 16 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 17 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 18 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 19 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 20 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 21 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 } /* level 22 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* base (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 1 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 2 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 3 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 4 (not adjusted) */
+ { 21, 18, 19 + DD_BLOG, 2, 5, 2, ZSTD_greedy }, /* level 5 */
+ { 21, 19, 19 + DD_BLOG, 3, 5, 4, ZSTD_greedy }, /* level 6 */
+ { 21, 19, 19 + DD_BLOG, 3, 5, 8, ZSTD_lazy }, /* level 7 */
+ { 21, 19, 19 + DD_BLOG, 3, 5, 16, ZSTD_lazy2 }, /* level 8 */
+ { 21, 19, 20 + DD_BLOG, 4, 5, 16, ZSTD_lazy2 }, /* level 9 */
+ { 22, 20, 21 + DD_BLOG, 4, 5, 16, ZSTD_lazy2 }, /* level 10 */
+ { 22, 21, 22 + DD_BLOG, 4, 5, 16, ZSTD_lazy2 }, /* level 11 */
+ { 22, 21, 22 + DD_BLOG, 5, 5, 16, ZSTD_lazy2 }, /* level 12 */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 13 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 14 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 15 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 16 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 17 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 18 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 19 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 20 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 21 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 } /* level 22 (not adjusted) */
},
{ /* for dictSize <= 256 KB */
/* W, C, H, S, L, T, strat */
- { 0, 0, 0, 0, 0, 0, 0 }, /* base (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 1 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 2 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 3 (not adjusted) */
- { 18, 16, 17 + DD_BLOG, 2, 5, 2, ZSTD_greedy }, /* level 4 */
- { 18, 18, 18 + DD_BLOG, 3, 5, 2, ZSTD_greedy }, /* level 5 */
- { 18, 18, 19 + DD_BLOG, 3, 5, 4, ZSTD_lazy }, /* level 6 */
- { 18, 18, 19 + DD_BLOG, 4, 4, 4, ZSTD_lazy }, /* level 7 */
- { 18, 18, 19 + DD_BLOG, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */
- { 18, 18, 19 + DD_BLOG, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */
- { 18, 18, 19 + DD_BLOG, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 11 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 12 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 13 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 14 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 15 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 16 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 17 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 18 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 19 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 20 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 21 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 } /* level 22 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* base (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 1 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 2 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 3 (not adjusted) */
+ { 18, 16, 17 + DD_BLOG, 2, 5, 2, ZSTD_greedy }, /* level 4 */
+ { 18, 18, 18 + DD_BLOG, 3, 5, 2, ZSTD_greedy }, /* level 5 */
+ { 18, 18, 19 + DD_BLOG, 3, 5, 4, ZSTD_lazy }, /* level 6 */
+ { 18, 18, 19 + DD_BLOG, 4, 4, 4, ZSTD_lazy }, /* level 7 */
+ { 18, 18, 19 + DD_BLOG, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */
+ { 18, 18, 19 + DD_BLOG, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */
+ { 18, 18, 19 + DD_BLOG, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 11 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 12 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 13 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 14 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 15 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 16 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 17 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 18 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 19 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 20 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 21 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 } /* level 22 (not adjusted) */
},
{ /* for dictSize <= 128 KB */
/* W, C, H, S, L, T, strat */
- { 0, 0, 0, 0, 0, 0, 0 }, /* base (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 1 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 2 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 3 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 4 (not adjusted) */
- { 17, 16, 17 + DD_BLOG, 3, 4, 2, ZSTD_greedy }, /* level 5 */
- { 17, 17, 17 + DD_BLOG, 3, 4, 4, ZSTD_lazy }, /* level 6 */
- { 17, 17, 17 + DD_BLOG, 3, 4, 8, ZSTD_lazy2 }, /* level 7 */
- { 17, 17, 17 + DD_BLOG, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */
- { 17, 17, 17 + DD_BLOG, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */
- { 17, 17, 17 + DD_BLOG, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 11 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 12 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 13 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 14 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 15 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 16 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 17 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 18 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 19 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 20 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 21 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 } /* level 22 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* base (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 1 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 2 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 3 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 4 (not adjusted) */
+ { 17, 16, 17 + DD_BLOG, 3, 4, 2, ZSTD_greedy }, /* level 5 */
+ { 17, 17, 17 + DD_BLOG, 3, 4, 4, ZSTD_lazy }, /* level 6 */
+ { 17, 17, 17 + DD_BLOG, 3, 4, 8, ZSTD_lazy2 }, /* level 7 */
+ { 17, 17, 17 + DD_BLOG, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */
+ { 17, 17, 17 + DD_BLOG, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */
+ { 17, 17, 17 + DD_BLOG, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 11 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 12 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 13 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 14 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 15 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 16 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 17 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 18 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 19 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 20 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 21 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 } /* level 22 (not adjusted) */
},
{ /* for dictSize <= 16 KB */
/* W, C, H, S, L, T, strat */
- { 0, 0, 0, 0, 0, 0, 0 }, /* base (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 1 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 2 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 3 (not adjusted) */
- { 14, 14, 14 + DD_BLOG, 4, 4, 2, ZSTD_greedy }, /* level 4 */
- { 14, 14, 14 + DD_BLOG, 3, 4, 4, ZSTD_lazy }, /* level 5 */
- { 14, 14, 14 + DD_BLOG, 4, 4, 8, ZSTD_lazy2 }, /* level 6 */
- { 14, 14, 14 + DD_BLOG, 6, 4, 8, ZSTD_lazy2 }, /* level 7 */
- { 14, 14, 14 + DD_BLOG, 8, 4, 8, ZSTD_lazy2 }, /* level 8 */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 9 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 10 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 11 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 12 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 13 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 14 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 15 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 16 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 17 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 18 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 19 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 20 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 }, /* level 21 (not adjusted) */
- { 0, 0, 0, 0, 0, 0, 0 } /* level 22 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* base (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 1 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 2 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 3 (not adjusted) */
+ { 14, 14, 14 + DD_BLOG, 4, 4, 2, ZSTD_greedy }, /* level 4 */
+ { 14, 14, 14 + DD_BLOG, 3, 4, 4, ZSTD_lazy }, /* level 5 */
+ { 14, 14, 14 + DD_BLOG, 4, 4, 8, ZSTD_lazy2 }, /* level 6 */
+ { 14, 14, 14 + DD_BLOG, 6, 4, 8, ZSTD_lazy2 }, /* level 7 */
+ { 14, 14, 14 + DD_BLOG, 8, 4, 8, ZSTD_lazy2 }, /* level 8 */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 9 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 10 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 11 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 12 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 13 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 14 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 15 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 16 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 17 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 18 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 19 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 20 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 }, /* level 21 (not adjusted) */
+ { 0, 0, 0, 0, 0, 0, (ZSTD_strategy)0 } /* level 22 (not adjusted) */
},
};