Only Reset Indexing in ZSTD_resetCCtx_internal()
When Necessary
This commit is contained in:
parent
9968a53e91
commit
f31ef28ff8
@ -1398,6 +1398,14 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc,
|
|||||||
size_t const matchStateSize = ZSTD_sizeof_matchState(¶ms.cParams, /* forCCtx */ 1);
|
size_t const matchStateSize = ZSTD_sizeof_matchState(¶ms.cParams, /* forCCtx */ 1);
|
||||||
size_t const maxNbLdmSeq = ZSTD_ldm_getMaxNbSeq(params.ldmParams, blockSize);
|
size_t const maxNbLdmSeq = ZSTD_ldm_getMaxNbSeq(params.ldmParams, blockSize);
|
||||||
|
|
||||||
|
ZSTD_indexResetPolicy_e needsIndexReset = ZSTDirp_continue;
|
||||||
|
|
||||||
|
if (ZSTD_indexTooCloseToMax(zc->blockState.matchState.window)) {
|
||||||
|
needsIndexReset = ZSTDirp_reset;
|
||||||
|
}
|
||||||
|
|
||||||
|
ZSTD_cwksp_bump_oversized_duration(ws, 0);
|
||||||
|
|
||||||
/* Check if workspace is large enough, alloc a new one if needed */
|
/* Check if workspace is large enough, alloc a new one if needed */
|
||||||
{ size_t const cctxSpace = zc->staticSize ? sizeof(ZSTD_CCtx) : 0;
|
{ size_t const cctxSpace = zc->staticSize ? sizeof(ZSTD_CCtx) : 0;
|
||||||
size_t const entropySpace = HUF_WORKSPACE_SIZE;
|
size_t const entropySpace = HUF_WORKSPACE_SIZE;
|
||||||
@ -1430,6 +1438,8 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc,
|
|||||||
|
|
||||||
RETURN_ERROR_IF(zc->staticSize, memory_allocation, "static cctx : no resize");
|
RETURN_ERROR_IF(zc->staticSize, memory_allocation, "static cctx : no resize");
|
||||||
|
|
||||||
|
needsIndexReset = ZSTDirp_reset;
|
||||||
|
|
||||||
ZSTD_cwksp_free(ws, zc->customMem);
|
ZSTD_cwksp_free(ws, zc->customMem);
|
||||||
FORWARD_IF_ERROR(ZSTD_cwksp_create(ws, neededSpace, zc->customMem));
|
FORWARD_IF_ERROR(ZSTD_cwksp_create(ws, neededSpace, zc->customMem));
|
||||||
|
|
||||||
@ -1500,7 +1510,7 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc,
|
|||||||
ws,
|
ws,
|
||||||
¶ms.cParams,
|
¶ms.cParams,
|
||||||
crp,
|
crp,
|
||||||
ZSTDirp_reset,
|
needsIndexReset,
|
||||||
ZSTD_resetTarget_CCtx));
|
ZSTD_resetTarget_CCtx));
|
||||||
|
|
||||||
/* ldm hash table */
|
/* ldm hash table */
|
||||||
|
Loading…
Reference in New Issue
Block a user