const seqStore_t* ZSTD_getSeqStore(const ZSTD_CCtx* ctx) { return &(ctx->seqStore); }
/* older variant; will be deprecated */
+/* Both requested and applied params need to be set as this function can be
+ * called before/after ZSTD_parameters have been applied. */
size_t ZSTD_setCCtxParameter(ZSTD_CCtx* cctx, ZSTD_CCtxParameter param, unsigned value)
{
switch(param)
{
case ZSTD_p_forceWindow :
cctx->requestedParams.forceWindow = value>0;
+ cctx->appliedParams.forceWindow = value>0;
cctx->loadedDictEnd = 0;
return 0;
ZSTD_STATIC_ASSERT(ZSTD_dm_auto==0);
ZSTD_STATIC_ASSERT(ZSTD_dm_rawContent==1);
case ZSTD_p_forceRawDict :
cctx->requestedParams.dictMode = (ZSTD_dictMode_e)(value>0);
+ cctx->appliedParams.dictMode = (ZSTD_dictMode_e)(value>0);
return 0;
default: return ERROR(parameter_unsupported);
}
}
}
-#if 0
-static void ZSTD_debugPrintCCtxParams(ZSTD_CCtx_params* params)
-{
- DEBUGLOG(2, "======CCtxParams======");
- DEBUGLOG(2, "cParams: %u %u %u %u %u %u %u",
- params->cParams.windowLog,
- params->cParams.chainLog,
- params->cParams.hashLog,
- params->cParams.searchLog,
- params->cParams.searchLength,
- params->cParams.targetLength,
- params->cParams.strategy);
- DEBUGLOG(2, "fParams: %u %u %u",
- params->fParams.contentSizeFlag,
- params->fParams.checksumFlag,
- params->fParams.noDictIDFlag);
- DEBUGLOG(2, "cLevel, forceWindow: %u %u",
- params->compressionLevel,
- params->forceWindow);
- DEBUGLOG(2, "dictionary: %u %u",
- params->dictMode,
- params->dictContentByRef);
- DEBUGLOG(2, "multithreading: %u %u %u",
- params->nbThreads,
- params->jobSize,
- params->overlapSizeLog);
-}
-#endif
-
/**
* This function should be updated whenever ZSTD_CCtx_params is updated.
* Parameters are copied manually before the dictionary is loaded.
return ERROR(memory_allocation);
}
ZSTD_freeCDict(zcs->cdictLocal);
-
- /* Is a CCtx_params version needed? */
zcs->cdictLocal = ZSTD_createCDict_advanced(
dict, dictSize,
params.dictContentByRef, params.dictMode,
ZSTD_free(buf.start, bufPool->cMem);
}
-/* Sets parameterse relevant to the compression job, initializing others to
+/* Sets parameters relevant to the compression job, initializing others to
* default values. Notably, nbThreads should probably be zero. */
static ZSTD_CCtx_params ZSTDMT_makeJobCCtxParams(ZSTD_CCtx_params const params)
{
ZSTD_CCtxParam_setParameter(&jobParams, ZSTD_p_dictMode, 1);
size_t const forceWindowError =
ZSTD_CCtxParam_setParameter(&jobParams, ZSTD_p_forceMaxWindow, !job->firstChunk);
- /* TODO: new/old api do not interact well here (or with
- * ZSTD_setCCtxParameter).
- * ZSTD_compressBegin_advanced copies params directly to
- * appliedParams. ZSTD_CCtx_setParameter sets params in requested
- * parameters. They should not be mixed -- parameters should be passed
- * directly */
+ /* Note: ZSTD_setCCtxParameter() should not be used here.
+ * ZSTD_compressBegin_advanced_internal() copies the ZSTD_CCtx_params
+ * directly to appliedParams. */
size_t const initError = ZSTD_compressBegin_advanced_internal(cctx, job->srcStart, job->dictSize, jobParams, job->fullFrameSize);
if (ZSTD_isError(initError) || ZSTD_isError(dictModeError) ||
ZSTD_isError(forceWindowError)) { job->cSize = initError; goto _endJob; }
if (dict) {
DEBUGLOG(4,"cdictLocal: %08X", (U32)(size_t)zcs->cdictLocal);
ZSTD_freeCDict(zcs->cdictLocal);
- /* TODO: cctxParam version? Is this correct? */
zcs->cdictLocal = ZSTD_createCDict_advanced(dict, dictSize,
0 /* byRef */, ZSTD_dm_auto, /* note : a loadPrefix becomes an internal CDict */
requestedParams.cParams, zcs->cMem);