Merge pull request #906 from facebook/fixAutoPledge
fix : ZSTD_compress_generic(,,,ZSTD_e_end) automatically sets pledgedSrcSize
This commit is contained in:
@@ -2814,6 +2814,7 @@ size_t ZSTD_compress_generic (ZSTD_CCtx* cctx,
|
|||||||
if (cctx->streamStage == zcss_init) {
|
if (cctx->streamStage == zcss_init) {
|
||||||
ZSTD_prefixDict const prefixDict = cctx->prefixDict;
|
ZSTD_prefixDict const prefixDict = cctx->prefixDict;
|
||||||
ZSTD_CCtx_params params = cctx->requestedParams;
|
ZSTD_CCtx_params params = cctx->requestedParams;
|
||||||
|
if (endOp == ZSTD_e_end) cctx->pledgedSrcSizePlusOne = input->size + 1;
|
||||||
params.cParams = ZSTD_getCParamsFromCCtxParams(
|
params.cParams = ZSTD_getCParamsFromCCtxParams(
|
||||||
cctx->requestedParams, cctx->pledgedSrcSizePlusOne-1, 0 /*dictSize*/);
|
cctx->requestedParams, cctx->pledgedSrcSizePlusOne-1, 0 /*dictSize*/);
|
||||||
memset(&cctx->prefixDict, 0, sizeof(cctx->prefixDict)); /* single usage */
|
memset(&cctx->prefixDict, 0, sizeof(cctx->prefixDict)); /* single usage */
|
||||||
|
|||||||
@@ -305,6 +305,14 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize,
|
|||||||
do {
|
do {
|
||||||
U32 blockNb;
|
U32 blockNb;
|
||||||
for (blockNb=0; blockNb<nbBlocks; blockNb++) {
|
for (blockNb=0; blockNb<nbBlocks; blockNb++) {
|
||||||
|
#if 0 /* direct compression function, for occasional comparison */
|
||||||
|
ZSTD_parameters const params = ZSTD_getParams(cLevel, blockTable[blockNb].srcSize, dictBufferSize);
|
||||||
|
blockTable[blockNb].cSize = ZSTD_compress_advanced(ctx,
|
||||||
|
blockTable[blockNb].cPtr, blockTable[blockNb].cRoom,
|
||||||
|
blockTable[blockNb].srcPtr, blockTable[blockNb].srcSize,
|
||||||
|
dictBuffer, dictBufferSize,
|
||||||
|
params);
|
||||||
|
#else
|
||||||
size_t moreToFlush = 1;
|
size_t moreToFlush = 1;
|
||||||
ZSTD_outBuffer out;
|
ZSTD_outBuffer out;
|
||||||
ZSTD_inBuffer in;
|
ZSTD_inBuffer in;
|
||||||
@@ -322,6 +330,7 @@ static int BMK_benchMem(const void* srcBuffer, size_t srcSize,
|
|||||||
ZSTD_getErrorName(moreToFlush));
|
ZSTD_getErrorName(moreToFlush));
|
||||||
}
|
}
|
||||||
blockTable[blockNb].cSize = out.pos;
|
blockTable[blockNb].cSize = out.pos;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
nbLoops++;
|
nbLoops++;
|
||||||
} while (UTIL_clockSpanMicro(clockStart) < clockLoop);
|
} while (UTIL_clockSpanMicro(clockStart) < clockLoop);
|
||||||
|
|||||||
Reference in New Issue
Block a user