Fix error
parent
3328348c63
commit
3fa4daaa55
|
@ -50,7 +50,7 @@ struct ZSTD_CDict_s {
|
||||||
ZSTD_compressedBlockState_t cBlockState;
|
ZSTD_compressedBlockState_t cBlockState;
|
||||||
ZSTD_customMem customMem;
|
ZSTD_customMem customMem;
|
||||||
U32 dictID;
|
U32 dictID;
|
||||||
BYTE compressionLevel; /* 0 indicates that advanced API was used to select params */
|
BYTE compressionLevel; /* 0 indicates that advanced API was used to select CDict params */
|
||||||
}; /* typedef'd to ZSTD_CDict within "zstd.h" */
|
}; /* typedef'd to ZSTD_CDict within "zstd.h" */
|
||||||
|
|
||||||
ZSTD_CCtx* ZSTD_createCCtx(void)
|
ZSTD_CCtx* ZSTD_createCCtx(void)
|
||||||
|
@ -2890,6 +2890,8 @@ ZSTD_compress_insertDictionary(ZSTD_compressedBlockState_t* bs,
|
||||||
bs, ms, ws, params, dict, dictSize, dtlm, workspace);
|
bs, ms, ws, params, dict, dictSize, dtlm, workspace);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define ZSTD_USE_CDICT_PARAMS_CUTOFF (1 MB)
|
||||||
|
|
||||||
/*! ZSTD_compressBegin_internal() :
|
/*! ZSTD_compressBegin_internal() :
|
||||||
* @return : 0, or an error code */
|
* @return : 0, or an error code */
|
||||||
static size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx,
|
static size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx,
|
||||||
|
@ -2904,17 +2906,22 @@ static size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx,
|
||||||
/* params are supposed to be fully validated at this point */
|
/* params are supposed to be fully validated at this point */
|
||||||
assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams)));
|
assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams)));
|
||||||
assert(!((dict) && (cdict))); /* either dict or cdict, not both */
|
assert(!((dict) && (cdict))); /* either dict or cdict, not both */
|
||||||
|
if ( (cdict)
|
||||||
if (cdict && cdict->dictContentSize>0) {
|
&& (cdict->dictContentSize > 0)
|
||||||
|
&& (pledgedSrcSize < ZSTD_USE_CDICT_PARAMS_CUTOFF || cdict->compressionLevel == 0) ) {
|
||||||
return ZSTD_resetCCtx_usingCDict(cctx, cdict, params, pledgedSrcSize, zbuff);
|
return ZSTD_resetCCtx_usingCDict(cctx, cdict, params, pledgedSrcSize, zbuff);
|
||||||
}
|
}
|
||||||
|
|
||||||
FORWARD_IF_ERROR( ZSTD_resetCCtx_internal(cctx, *params, pledgedSrcSize,
|
FORWARD_IF_ERROR( ZSTD_resetCCtx_internal(cctx, *params, pledgedSrcSize,
|
||||||
ZSTDcrp_makeClean, zbuff) );
|
ZSTDcrp_continue, zbuff) );
|
||||||
{ size_t const dictID = ZSTD_compress_insertDictionary(
|
{ size_t const dictID = cdict ?
|
||||||
cctx->blockState.prevCBlock, &cctx->blockState.matchState,
|
ZSTD_compress_insertDictionary(
|
||||||
&cctx->workspace, params, dict, dictSize, dictContentType, dtlm,
|
cctx->blockState.prevCBlock, &cctx->blockState.matchState,
|
||||||
cctx->entropyWorkspace);
|
params, cdict->dictContent, cdict->dictContentSize,
|
||||||
|
dictContentType, dtlm, cctx->entropyWorkspace)
|
||||||
|
: ZSTD_compress_insertDictionary(
|
||||||
|
cctx->blockState.prevCBlock, &cctx->blockState.matchState,
|
||||||
|
params, dict, dictSize, dictContentType, dtlm, cctx->entropyWorkspace);
|
||||||
FORWARD_IF_ERROR(dictID);
|
FORWARD_IF_ERROR(dictID);
|
||||||
assert(dictID <= UINT_MAX);
|
assert(dictID <= UINT_MAX);
|
||||||
cctx->dictID = (U32)dictID;
|
cctx->dictID = (U32)dictID;
|
||||||
|
@ -3229,6 +3236,13 @@ ZSTD_CDict* ZSTD_createCDict_advanced(const void* dictBuffer, size_t dictSize,
|
||||||
assert(cdict != NULL);
|
assert(cdict != NULL);
|
||||||
ZSTD_cwksp_move(&cdict->workspace, &ws);
|
ZSTD_cwksp_move(&cdict->workspace, &ws);
|
||||||
cdict->customMem = customMem;
|
cdict->customMem = customMem;
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
cdict->workspace = workspace;
|
||||||
|
cdict->workspaceSize = workspaceSize;
|
||||||
|
cdict->compressionLevel = 0; /* signals advanced API usage */
|
||||||
|
|
||||||
|
>>>>>>> Fix error
|
||||||
if (ZSTD_isError( ZSTD_initCDict_internal(cdict,
|
if (ZSTD_isError( ZSTD_initCDict_internal(cdict,
|
||||||
dictBuffer, dictSize,
|
dictBuffer, dictSize,
|
||||||
dictLoadMethod, dictContentType,
|
dictLoadMethod, dictContentType,
|
||||||
|
@ -3244,9 +3258,11 @@ ZSTD_CDict* ZSTD_createCDict_advanced(const void* dictBuffer, size_t dictSize,
|
||||||
ZSTD_CDict* ZSTD_createCDict(const void* dict, size_t dictSize, int compressionLevel)
|
ZSTD_CDict* ZSTD_createCDict(const void* dict, size_t dictSize, int compressionLevel)
|
||||||
{
|
{
|
||||||
ZSTD_compressionParameters cParams = ZSTD_getCParams(compressionLevel, 0, dictSize);
|
ZSTD_compressionParameters cParams = ZSTD_getCParams(compressionLevel, 0, dictSize);
|
||||||
return ZSTD_createCDict_advanced(dict, dictSize,
|
ZSTD_CDict* cdict = ZSTD_createCDict_advanced(dict, dictSize,
|
||||||
ZSTD_dlm_byCopy, ZSTD_dct_auto,
|
ZSTD_dlm_byCopy, ZSTD_dct_auto,
|
||||||
cParams, ZSTD_defaultCMem);
|
cParams, ZSTD_defaultCMem);
|
||||||
|
cdict->compressionLevel = compressionLevel == 0 ? ZSTD_CLEVEL_DEFAULT : compressionLevel;
|
||||||
|
return cdict;
|
||||||
}
|
}
|
||||||
|
|
||||||
ZSTD_CDict* ZSTD_createCDict_byReference(const void* dict, size_t dictSize, int compressionLevel)
|
ZSTD_CDict* ZSTD_createCDict_byReference(const void* dict, size_t dictSize, int compressionLevel)
|
||||||
|
@ -3334,7 +3350,11 @@ size_t ZSTD_compressBegin_usingCDict_advanced(
|
||||||
DEBUGLOG(4, "ZSTD_compressBegin_usingCDict_advanced");
|
DEBUGLOG(4, "ZSTD_compressBegin_usingCDict_advanced");
|
||||||
RETURN_ERROR_IF(cdict==NULL, dictionary_wrong);
|
RETURN_ERROR_IF(cdict==NULL, dictionary_wrong);
|
||||||
{ ZSTD_CCtx_params params = cctx->requestedParams;
|
{ ZSTD_CCtx_params params = cctx->requestedParams;
|
||||||
params.cParams = ZSTD_getCParamsFromCDict(cdict);
|
params.cParams = (pledgedSrcSize < ZSTD_USE_CDICT_PARAMS_CUTOFF) || (cdict->compressionLevel == 0) ?
|
||||||
|
ZSTD_getCParamsFromCDict(cdict)
|
||||||
|
: ZSTD_getCParams(cdict->compressionLevel,
|
||||||
|
pledgedSrcSize,
|
||||||
|
cdict->dictContentSize);
|
||||||
/* Increase window log to fit the entire dictionary and source if the
|
/* Increase window log to fit the entire dictionary and source if the
|
||||||
* source size is known. Limit the increase to 19, which is the
|
* source size is known. Limit the increase to 19, which is the
|
||||||
* window log for compression level 1 with the largest source size.
|
* window log for compression level 1 with the largest source size.
|
||||||
|
|
Loading…
Reference in New Issue