/* Dictionary */
// ZSTD_dictMode_e dictMode; /* select restricting dictionary to "rawContent" or "fullDict" only */
- U32 dictContentByRef;
+// U32 dictContentByRef;
ZSTD_CDict* cdictLocal;
const ZSTD_CDict* cdict;
const void* prefix;
case ZSTD_p_refDictContent :
if (cctx->cdict) return ERROR(stage_wrong); /* must be set before loading */
/* dictionary content will be referenced, instead of copied */
- cctx->dictContentByRef = value>0;
+ cctx->requestedParams.dictContentByRef = value>0;
return 0;
case ZSTD_p_forceMaxWindow : /* Force back-references to remain < windowSize,
return 0;
case ZSTD_p_refDictContent :
-// cctx->dictContentByRef = value > 0;
+ params->dictContentByRef = value > 0;
return 0;
case ZSTD_p_forceMaxWindow :
return 0;
case ZSTD_p_nbThreads :
+ // TODO
return 0;
case ZSTD_p_jobSize :
+ // TODO
return 0;
case ZSTD_p_overlapSizeLog :
+ // TODO
return 0;
default: return ERROR(parameter_unsupported);
ZSTD_getCParams(cctx->requestedParams.compressionLevel, 0, dictSize);
cctx->cdictLocal = ZSTD_createCDict_advanced(
dict, dictSize,
- cctx->dictContentByRef, cctx->requestedParams.dictMode,
+ cctx->requestedParams.dictContentByRef,
+ cctx->requestedParams.dictMode,
cParams, cctx->customMem);
cctx->cdict = cctx->cdictLocal;
if (cctx->cdictLocal == NULL)
/* ===== Dictionary API ===== */
size_t ZSTD_estimateCDictSize_advanced_opaque(
- size_t dictSize, ZSTD_CCtx_params* params, unsigned byReference)
+ size_t dictSize, ZSTD_CCtx_params* params)
{
if (params == NULL) { return 0; }
DEBUGLOG(5, "sizeof(ZSTD_CDict) : %u", (U32)sizeof(ZSTD_CDict));
DEBUGLOG(5, "CCtx estimate : %u",
(U32)ZSTD_estimateCCtxSize_advanced_opaque(params));
return sizeof(ZSTD_CDict) + ZSTD_estimateCCtxSize_advanced_opaque(params)
- + (byReference ? 0 : dictSize);
+ + (params->dictContentByRef ? 0 : dictSize);
}
size_t ZSTD_estimateCDictSize_advanced(size_t dictSize, ZSTD_compressionParameters cParams, unsigned byReference)
{
ZSTD_CCtx_params params = ZSTD_makeCCtxParamsFromCParams(cParams);
- return ZSTD_estimateCDictSize_advanced_opaque(dictSize, ¶ms, byReference);
+ params.dictContentByRef = byReference;
+ return ZSTD_estimateCDictSize_advanced_opaque(dictSize, ¶ms);
}
size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel)
cctxParams.cParams = cParams;
cctxParams.fParams = fParams;
cctxParams.dictMode = dictMode;
+ cctxParams.dictContentByRef = byReference;
+
CHECK_F( ZSTD_compressBegin_internal(cdict->refContext,
cdict->dictContent, dictSize,
NULL,
ZSTD_CDict* ZSTD_initStaticCDict_advanced_opaque(
void *workspace, size_t workspaceSize, const void* dict,
- size_t dictSize, unsigned byReference,
+ size_t dictSize,
ZSTD_CCtx_params* params)
{
ZSTD_compressionParameters cParams = params->cParams;
size_t const cctxSize = ZSTD_estimateCCtxSize_advanced(cParams);
- size_t const neededSize = sizeof(ZSTD_CDict) + (byReference ? 0 : dictSize)
+ size_t const neededSize = sizeof(ZSTD_CDict) + (params->dictContentByRef ? 0 : dictSize)
+ cctxSize;
ZSTD_CDict* const cdict = (ZSTD_CDict*) workspace;
void* ptr;
(U32)workspaceSize, (U32)neededSize, (U32)(workspaceSize < neededSize));
if (workspaceSize < neededSize) return NULL;
- if (!byReference) {
+ if (!params->dictContentByRef) {
memcpy(cdict+1, dict, dictSize);
dict = cdict+1;
ptr = (char*)workspace + sizeof(ZSTD_CDict) + dictSize;
{
ZSTD_CCtx_params params = ZSTD_makeCCtxParamsFromCParams(cParams);
params.dictMode = dictMode;
+ params.dictContentByRef = byReference;
return ZSTD_initStaticCDict_advanced_opaque(
workspace, workspaceSize, dict, dictSize,
- byReference, ¶ms);
+ ¶ms);
}
-
ZSTD_parameters ZSTD_getParamsFromCDict(const ZSTD_CDict* cdict) {
return ZSTD_getParamsFromCCtx(cdict->refContext);
}
}
ZSTD_freeCDict(zcs->cdictLocal);
zcs->cdictLocal = ZSTD_createCDict_advanced(dict, dictSize,
- zcs->dictContentByRef,
+ zcs->requestedParams.dictContentByRef,
zcs->requestedParams.dictMode,
params.cParams, zcs->customMem);
zcs->cdict = zcs->cdictLocal;
* Note : dictionary created "byReference" are smaller */
ZSTDLIB_API size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel);
ZSTDLIB_API size_t ZSTD_estimateCDictSize_advanced(size_t dictSize, ZSTD_compressionParameters cParams, unsigned byReference);
-ZSTDLIB_API size_t ZSTD_estimateCDictSize_advanced_opaque(size_t dictSize, ZSTD_CCtx_params* params, unsigned byReference);
+
+// By reference
+ZSTDLIB_API size_t ZSTD_estimateCDictSize_advanced_opaque(size_t dictSize, ZSTD_CCtx_params* params);
ZSTDLIB_API size_t ZSTD_estimateDDictSize(size_t dictSize, unsigned byReference);
ZSTDLIB_API ZSTD_CDict* ZSTD_initStaticCDict_advanced_opaque(
void* workspace, size_t workspaceSize,
const void* dict, size_t dictSize,
- unsigned byReference,
ZSTD_CCtx_params* params);
ZSTDLIB_API ZSTD_CCtx_params* ZSTD_createCCtxParams(void);