Rename FORWARD_ERROR -> FORWARD_IF_ERROR
This commit is contained in:
parent
429987c9a6
commit
501eb25102
@ -87,7 +87,7 @@ extern "C" {
|
|||||||
*
|
*
|
||||||
* In debug modes, prints additional information.
|
* In debug modes, prints additional information.
|
||||||
*/
|
*/
|
||||||
#define FORWARD_ERROR(err, ...) \
|
#define FORWARD_IF_ERROR(err, ...) \
|
||||||
do { \
|
do { \
|
||||||
size_t const err_code = (err); \
|
size_t const err_code = (err); \
|
||||||
if (ERR_isError(err_code)) { \
|
if (ERR_isError(err_code)) { \
|
||||||
|
@ -206,7 +206,7 @@ size_t ZSTD_CCtxParams_init(ZSTD_CCtx_params* cctxParams, int compressionLevel)
|
|||||||
size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params)
|
size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params)
|
||||||
{
|
{
|
||||||
RETURN_ERROR_IF(!cctxParams, GENERIC);
|
RETURN_ERROR_IF(!cctxParams, GENERIC);
|
||||||
FORWARD_ERROR( ZSTD_checkCParams(params.cParams) );
|
FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) );
|
||||||
memset(cctxParams, 0, sizeof(*cctxParams));
|
memset(cctxParams, 0, sizeof(*cctxParams));
|
||||||
cctxParams->cParams = params.cParams;
|
cctxParams->cParams = params.cParams;
|
||||||
cctxParams->fParams = params.fParams;
|
cctxParams->fParams = params.fParams;
|
||||||
@ -2079,7 +2079,7 @@ static size_t ZSTD_NCountCost(unsigned const* count, unsigned const max,
|
|||||||
BYTE wksp[FSE_NCOUNTBOUND];
|
BYTE wksp[FSE_NCOUNTBOUND];
|
||||||
S16 norm[MaxSeq + 1];
|
S16 norm[MaxSeq + 1];
|
||||||
const U32 tableLog = FSE_optimalTableLog(FSELog, nbSeq, max);
|
const U32 tableLog = FSE_optimalTableLog(FSELog, nbSeq, max);
|
||||||
FORWARD_ERROR(FSE_normalizeCount(norm, tableLog, count, nbSeq, max));
|
FORWARD_IF_ERROR(FSE_normalizeCount(norm, tableLog, count, nbSeq, max));
|
||||||
return FSE_writeNCount(wksp, sizeof(wksp), norm, max, tableLog);
|
return FSE_writeNCount(wksp, sizeof(wksp), norm, max, tableLog);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2185,7 +2185,7 @@ ZSTD_buildCTable(void* dst, size_t dstCapacity,
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case set_rle:
|
case set_rle:
|
||||||
FORWARD_ERROR(FSE_buildCTable_rle(nextCTable, (BYTE)max));
|
FORWARD_IF_ERROR(FSE_buildCTable_rle(nextCTable, (BYTE)max));
|
||||||
RETURN_ERROR_IF(dstCapacity==0, dstSize_tooSmall);
|
RETURN_ERROR_IF(dstCapacity==0, dstSize_tooSmall);
|
||||||
*op = codeTable[0];
|
*op = codeTable[0];
|
||||||
return 1;
|
return 1;
|
||||||
@ -2193,7 +2193,7 @@ ZSTD_buildCTable(void* dst, size_t dstCapacity,
|
|||||||
memcpy(nextCTable, prevCTable, prevCTableSize);
|
memcpy(nextCTable, prevCTable, prevCTableSize);
|
||||||
return 0;
|
return 0;
|
||||||
case set_basic:
|
case set_basic:
|
||||||
FORWARD_ERROR(FSE_buildCTable_wksp(nextCTable, defaultNorm, defaultMax, defaultNormLog, workspace, workspaceSize)); /* note : could be pre-calculated */
|
FORWARD_IF_ERROR(FSE_buildCTable_wksp(nextCTable, defaultNorm, defaultMax, defaultNormLog, workspace, workspaceSize)); /* note : could be pre-calculated */
|
||||||
return 0;
|
return 0;
|
||||||
case set_compressed: {
|
case set_compressed: {
|
||||||
S16 norm[MaxSeq + 1];
|
S16 norm[MaxSeq + 1];
|
||||||
@ -2204,10 +2204,10 @@ ZSTD_buildCTable(void* dst, size_t dstCapacity,
|
|||||||
nbSeq_1--;
|
nbSeq_1--;
|
||||||
}
|
}
|
||||||
assert(nbSeq_1 > 1);
|
assert(nbSeq_1 > 1);
|
||||||
FORWARD_ERROR(FSE_normalizeCount(norm, tableLog, count, nbSeq_1, max));
|
FORWARD_IF_ERROR(FSE_normalizeCount(norm, tableLog, count, nbSeq_1, max));
|
||||||
{ size_t const NCountSize = FSE_writeNCount(op, oend - op, norm, max, tableLog); /* overflow protected */
|
{ size_t const NCountSize = FSE_writeNCount(op, oend - op, norm, max, tableLog); /* overflow protected */
|
||||||
FORWARD_ERROR(NCountSize);
|
FORWARD_IF_ERROR(NCountSize);
|
||||||
FORWARD_ERROR(FSE_buildCTable_wksp(nextCTable, norm, max, tableLog, workspace, workspaceSize));
|
FORWARD_IF_ERROR(FSE_buildCTable_wksp(nextCTable, norm, max, tableLog, workspace, workspaceSize));
|
||||||
return NCountSize;
|
return NCountSize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2412,7 +2412,7 @@ ZSTD_compressSequences_internal(seqStore_t* seqStorePtr,
|
|||||||
literals, litSize,
|
literals, litSize,
|
||||||
workspace, wkspSize,
|
workspace, wkspSize,
|
||||||
bmi2);
|
bmi2);
|
||||||
FORWARD_ERROR(cSize);
|
FORWARD_IF_ERROR(cSize);
|
||||||
assert(cSize <= dstCapacity);
|
assert(cSize <= dstCapacity);
|
||||||
op += cSize;
|
op += cSize;
|
||||||
}
|
}
|
||||||
@ -2453,7 +2453,7 @@ ZSTD_compressSequences_internal(seqStore_t* seqStorePtr,
|
|||||||
count, max, llCodeTable, nbSeq, LL_defaultNorm, LL_defaultNormLog, MaxLL,
|
count, max, llCodeTable, nbSeq, LL_defaultNorm, LL_defaultNormLog, MaxLL,
|
||||||
prevEntropy->fse.litlengthCTable, sizeof(prevEntropy->fse.litlengthCTable),
|
prevEntropy->fse.litlengthCTable, sizeof(prevEntropy->fse.litlengthCTable),
|
||||||
workspace, wkspSize);
|
workspace, wkspSize);
|
||||||
FORWARD_ERROR(countSize);
|
FORWARD_IF_ERROR(countSize);
|
||||||
if (LLtype == set_compressed)
|
if (LLtype == set_compressed)
|
||||||
lastNCount = op;
|
lastNCount = op;
|
||||||
op += countSize;
|
op += countSize;
|
||||||
@ -2475,7 +2475,7 @@ ZSTD_compressSequences_internal(seqStore_t* seqStorePtr,
|
|||||||
count, max, ofCodeTable, nbSeq, OF_defaultNorm, OF_defaultNormLog, DefaultMaxOff,
|
count, max, ofCodeTable, nbSeq, OF_defaultNorm, OF_defaultNormLog, DefaultMaxOff,
|
||||||
prevEntropy->fse.offcodeCTable, sizeof(prevEntropy->fse.offcodeCTable),
|
prevEntropy->fse.offcodeCTable, sizeof(prevEntropy->fse.offcodeCTable),
|
||||||
workspace, wkspSize);
|
workspace, wkspSize);
|
||||||
FORWARD_ERROR(countSize);
|
FORWARD_IF_ERROR(countSize);
|
||||||
if (Offtype == set_compressed)
|
if (Offtype == set_compressed)
|
||||||
lastNCount = op;
|
lastNCount = op;
|
||||||
op += countSize;
|
op += countSize;
|
||||||
@ -2495,7 +2495,7 @@ ZSTD_compressSequences_internal(seqStore_t* seqStorePtr,
|
|||||||
count, max, mlCodeTable, nbSeq, ML_defaultNorm, ML_defaultNormLog, MaxML,
|
count, max, mlCodeTable, nbSeq, ML_defaultNorm, ML_defaultNormLog, MaxML,
|
||||||
prevEntropy->fse.matchlengthCTable, sizeof(prevEntropy->fse.matchlengthCTable),
|
prevEntropy->fse.matchlengthCTable, sizeof(prevEntropy->fse.matchlengthCTable),
|
||||||
workspace, wkspSize);
|
workspace, wkspSize);
|
||||||
FORWARD_ERROR(countSize);
|
FORWARD_IF_ERROR(countSize);
|
||||||
if (MLtype == set_compressed)
|
if (MLtype == set_compressed)
|
||||||
lastNCount = op;
|
lastNCount = op;
|
||||||
op += countSize;
|
op += countSize;
|
||||||
@ -2510,7 +2510,7 @@ ZSTD_compressSequences_internal(seqStore_t* seqStorePtr,
|
|||||||
CTable_LitLength, llCodeTable,
|
CTable_LitLength, llCodeTable,
|
||||||
sequences, nbSeq,
|
sequences, nbSeq,
|
||||||
longOffsets, bmi2);
|
longOffsets, bmi2);
|
||||||
FORWARD_ERROR(bitstreamSize);
|
FORWARD_IF_ERROR(bitstreamSize);
|
||||||
op += bitstreamSize;
|
op += bitstreamSize;
|
||||||
/* zstd versions <= 1.3.4 mistakenly report corruption when
|
/* zstd versions <= 1.3.4 mistakenly report corruption when
|
||||||
* FSE_readNCount() recieves a buffer < 4 bytes.
|
* FSE_readNCount() recieves a buffer < 4 bytes.
|
||||||
@ -2553,7 +2553,7 @@ ZSTD_compressSequences(seqStore_t* seqStorePtr,
|
|||||||
*/
|
*/
|
||||||
if ((cSize == ERROR(dstSize_tooSmall)) & (srcSize <= dstCapacity))
|
if ((cSize == ERROR(dstSize_tooSmall)) & (srcSize <= dstCapacity))
|
||||||
return 0; /* block not compressed */
|
return 0; /* block not compressed */
|
||||||
FORWARD_ERROR(cSize);
|
FORWARD_IF_ERROR(cSize);
|
||||||
|
|
||||||
/* Check compressibility */
|
/* Check compressibility */
|
||||||
{ size_t const maxCSize = srcSize - ZSTD_minGain(srcSize, cctxParams->cParams.strategy);
|
{ size_t const maxCSize = srcSize - ZSTD_minGain(srcSize, cctxParams->cParams.strategy);
|
||||||
@ -2680,7 +2680,7 @@ static size_t ZSTD_compressBlock_internal(ZSTD_CCtx* zc,
|
|||||||
ldmSeqStore.seq = zc->ldmSequences;
|
ldmSeqStore.seq = zc->ldmSequences;
|
||||||
ldmSeqStore.capacity = zc->maxNbLdmSequences;
|
ldmSeqStore.capacity = zc->maxNbLdmSequences;
|
||||||
/* Updates ldmSeqStore.size */
|
/* Updates ldmSeqStore.size */
|
||||||
FORWARD_ERROR(ZSTD_ldm_generateSequences(&zc->ldmState, &ldmSeqStore,
|
FORWARD_IF_ERROR(ZSTD_ldm_generateSequences(&zc->ldmState, &ldmSeqStore,
|
||||||
&zc->appliedParams.ldmParams,
|
&zc->appliedParams.ldmParams,
|
||||||
src, srcSize));
|
src, srcSize));
|
||||||
/* Updates ldmSeqStore.pos */
|
/* Updates ldmSeqStore.pos */
|
||||||
@ -2776,11 +2776,11 @@ static size_t ZSTD_compress_frameChunk (ZSTD_CCtx* cctx,
|
|||||||
{ size_t cSize = ZSTD_compressBlock_internal(cctx,
|
{ size_t cSize = ZSTD_compressBlock_internal(cctx,
|
||||||
op+ZSTD_blockHeaderSize, dstCapacity-ZSTD_blockHeaderSize,
|
op+ZSTD_blockHeaderSize, dstCapacity-ZSTD_blockHeaderSize,
|
||||||
ip, blockSize);
|
ip, blockSize);
|
||||||
FORWARD_ERROR(cSize);
|
FORWARD_IF_ERROR(cSize);
|
||||||
|
|
||||||
if (cSize == 0) { /* block is not compressible */
|
if (cSize == 0) { /* block is not compressible */
|
||||||
cSize = ZSTD_noCompressBlock(op, dstCapacity, ip, blockSize, lastBlock);
|
cSize = ZSTD_noCompressBlock(op, dstCapacity, ip, blockSize, lastBlock);
|
||||||
FORWARD_ERROR(cSize);
|
FORWARD_IF_ERROR(cSize);
|
||||||
} else {
|
} else {
|
||||||
U32 const cBlockHeader24 = lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3);
|
U32 const cBlockHeader24 = lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3);
|
||||||
MEM_writeLE24(op, cBlockHeader24);
|
MEM_writeLE24(op, cBlockHeader24);
|
||||||
@ -2889,7 +2889,7 @@ static size_t ZSTD_compressContinue_internal (ZSTD_CCtx* cctx,
|
|||||||
if (frame && (cctx->stage==ZSTDcs_init)) {
|
if (frame && (cctx->stage==ZSTDcs_init)) {
|
||||||
fhSize = ZSTD_writeFrameHeader(dst, dstCapacity, cctx->appliedParams,
|
fhSize = ZSTD_writeFrameHeader(dst, dstCapacity, cctx->appliedParams,
|
||||||
cctx->pledgedSrcSizePlusOne-1, cctx->dictID);
|
cctx->pledgedSrcSizePlusOne-1, cctx->dictID);
|
||||||
FORWARD_ERROR(fhSize);
|
FORWARD_IF_ERROR(fhSize);
|
||||||
dstCapacity -= fhSize;
|
dstCapacity -= fhSize;
|
||||||
dst = (char*)dst + fhSize;
|
dst = (char*)dst + fhSize;
|
||||||
cctx->stage = ZSTDcs_ongoing;
|
cctx->stage = ZSTDcs_ongoing;
|
||||||
@ -2924,7 +2924,7 @@ static size_t ZSTD_compressContinue_internal (ZSTD_CCtx* cctx,
|
|||||||
{ size_t const cSize = frame ?
|
{ size_t const cSize = frame ?
|
||||||
ZSTD_compress_frameChunk (cctx, dst, dstCapacity, src, srcSize, lastFrameChunk) :
|
ZSTD_compress_frameChunk (cctx, dst, dstCapacity, src, srcSize, lastFrameChunk) :
|
||||||
ZSTD_compressBlock_internal (cctx, dst, dstCapacity, src, srcSize);
|
ZSTD_compressBlock_internal (cctx, dst, dstCapacity, src, srcSize);
|
||||||
FORWARD_ERROR(cSize);
|
FORWARD_IF_ERROR(cSize);
|
||||||
cctx->consumedSrcSize += srcSize;
|
cctx->consumedSrcSize += srcSize;
|
||||||
cctx->producedCSize += (cSize + fhSize);
|
cctx->producedCSize += (cSize + fhSize);
|
||||||
assert(!(cctx->appliedParams.fParams.contentSizeFlag && cctx->pledgedSrcSizePlusOne == 0));
|
assert(!(cctx->appliedParams.fParams.contentSizeFlag && cctx->pledgedSrcSizePlusOne == 0));
|
||||||
@ -3088,7 +3088,7 @@ static size_t ZSTD_loadZstdDictionary(ZSTD_compressedBlockState_t* bs,
|
|||||||
RETURN_ERROR_IF(FSE_isError(matchlengthHeaderSize), dictionary_corrupted);
|
RETURN_ERROR_IF(FSE_isError(matchlengthHeaderSize), dictionary_corrupted);
|
||||||
RETURN_ERROR_IF(matchlengthLog > MLFSELog, dictionary_corrupted);
|
RETURN_ERROR_IF(matchlengthLog > MLFSELog, dictionary_corrupted);
|
||||||
/* Every match length code must have non-zero probability */
|
/* Every match length code must have non-zero probability */
|
||||||
FORWARD_ERROR( ZSTD_checkDictNCount(matchlengthNCount, matchlengthMaxValue, MaxML));
|
FORWARD_IF_ERROR( ZSTD_checkDictNCount(matchlengthNCount, matchlengthMaxValue, MaxML));
|
||||||
RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp(
|
RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp(
|
||||||
bs->entropy.fse.matchlengthCTable,
|
bs->entropy.fse.matchlengthCTable,
|
||||||
matchlengthNCount, matchlengthMaxValue, matchlengthLog,
|
matchlengthNCount, matchlengthMaxValue, matchlengthLog,
|
||||||
@ -3103,7 +3103,7 @@ static size_t ZSTD_loadZstdDictionary(ZSTD_compressedBlockState_t* bs,
|
|||||||
RETURN_ERROR_IF(FSE_isError(litlengthHeaderSize), dictionary_corrupted);
|
RETURN_ERROR_IF(FSE_isError(litlengthHeaderSize), dictionary_corrupted);
|
||||||
RETURN_ERROR_IF(litlengthLog > LLFSELog, dictionary_corrupted);
|
RETURN_ERROR_IF(litlengthLog > LLFSELog, dictionary_corrupted);
|
||||||
/* Every literal length code must have non-zero probability */
|
/* Every literal length code must have non-zero probability */
|
||||||
FORWARD_ERROR( ZSTD_checkDictNCount(litlengthNCount, litlengthMaxValue, MaxLL));
|
FORWARD_IF_ERROR( ZSTD_checkDictNCount(litlengthNCount, litlengthMaxValue, MaxLL));
|
||||||
RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp(
|
RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp(
|
||||||
bs->entropy.fse.litlengthCTable,
|
bs->entropy.fse.litlengthCTable,
|
||||||
litlengthNCount, litlengthMaxValue, litlengthLog,
|
litlengthNCount, litlengthMaxValue, litlengthLog,
|
||||||
@ -3125,7 +3125,7 @@ static size_t ZSTD_loadZstdDictionary(ZSTD_compressedBlockState_t* bs,
|
|||||||
offcodeMax = ZSTD_highbit32(maxOffset); /* Calculate minimum offset code required to represent maxOffset */
|
offcodeMax = ZSTD_highbit32(maxOffset); /* Calculate minimum offset code required to represent maxOffset */
|
||||||
}
|
}
|
||||||
/* All offset values <= dictContentSize + 128 KB must be representable */
|
/* All offset values <= dictContentSize + 128 KB must be representable */
|
||||||
FORWARD_ERROR(ZSTD_checkDictNCount(offcodeNCount, offcodeMaxValue, MIN(offcodeMax, MaxOff)));
|
FORWARD_IF_ERROR(ZSTD_checkDictNCount(offcodeNCount, offcodeMaxValue, MIN(offcodeMax, MaxOff)));
|
||||||
/* All repCodes must be <= dictContentSize and != 0*/
|
/* All repCodes must be <= dictContentSize and != 0*/
|
||||||
{ U32 u;
|
{ U32 u;
|
||||||
for (u=0; u<3; u++) {
|
for (u=0; u<3; u++) {
|
||||||
@ -3137,7 +3137,7 @@ static size_t ZSTD_loadZstdDictionary(ZSTD_compressedBlockState_t* bs,
|
|||||||
bs->entropy.fse.offcode_repeatMode = FSE_repeat_valid;
|
bs->entropy.fse.offcode_repeatMode = FSE_repeat_valid;
|
||||||
bs->entropy.fse.matchlength_repeatMode = FSE_repeat_valid;
|
bs->entropy.fse.matchlength_repeatMode = FSE_repeat_valid;
|
||||||
bs->entropy.fse.litlength_repeatMode = FSE_repeat_valid;
|
bs->entropy.fse.litlength_repeatMode = FSE_repeat_valid;
|
||||||
FORWARD_ERROR(ZSTD_loadDictionaryContent(ms, params, dictPtr, dictContentSize, dtlm));
|
FORWARD_IF_ERROR(ZSTD_loadDictionaryContent(ms, params, dictPtr, dictContentSize, dtlm));
|
||||||
return dictID;
|
return dictID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3194,13 +3194,13 @@ static size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx,
|
|||||||
return ZSTD_resetCCtx_usingCDict(cctx, cdict, params, pledgedSrcSize, zbuff);
|
return ZSTD_resetCCtx_usingCDict(cctx, cdict, params, pledgedSrcSize, zbuff);
|
||||||
}
|
}
|
||||||
|
|
||||||
FORWARD_ERROR( ZSTD_resetCCtx_internal(cctx, params, pledgedSrcSize,
|
FORWARD_IF_ERROR( ZSTD_resetCCtx_internal(cctx, params, pledgedSrcSize,
|
||||||
ZSTDcrp_continue, zbuff) );
|
ZSTDcrp_continue, zbuff) );
|
||||||
{
|
{
|
||||||
size_t const dictID = ZSTD_compress_insertDictionary(
|
size_t const dictID = ZSTD_compress_insertDictionary(
|
||||||
cctx->blockState.prevCBlock, &cctx->blockState.matchState,
|
cctx->blockState.prevCBlock, &cctx->blockState.matchState,
|
||||||
¶ms, dict, dictSize, dictContentType, dtlm, cctx->entropyWorkspace);
|
¶ms, dict, dictSize, dictContentType, dtlm, cctx->entropyWorkspace);
|
||||||
FORWARD_ERROR(dictID);
|
FORWARD_IF_ERROR(dictID);
|
||||||
assert(dictID <= (size_t)(U32)-1);
|
assert(dictID <= (size_t)(U32)-1);
|
||||||
cctx->dictID = (U32)dictID;
|
cctx->dictID = (U32)dictID;
|
||||||
}
|
}
|
||||||
@ -3217,7 +3217,7 @@ size_t ZSTD_compressBegin_advanced_internal(ZSTD_CCtx* cctx,
|
|||||||
{
|
{
|
||||||
DEBUGLOG(4, "ZSTD_compressBegin_advanced_internal: wlog=%u", params.cParams.windowLog);
|
DEBUGLOG(4, "ZSTD_compressBegin_advanced_internal: wlog=%u", params.cParams.windowLog);
|
||||||
/* compression parameters verification and optimization */
|
/* compression parameters verification and optimization */
|
||||||
FORWARD_ERROR( ZSTD_checkCParams(params.cParams) );
|
FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) );
|
||||||
return ZSTD_compressBegin_internal(cctx,
|
return ZSTD_compressBegin_internal(cctx,
|
||||||
dict, dictSize, dictContentType, dtlm,
|
dict, dictSize, dictContentType, dtlm,
|
||||||
cdict,
|
cdict,
|
||||||
@ -3270,7 +3270,7 @@ static size_t ZSTD_writeEpilogue(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity)
|
|||||||
/* special case : empty frame */
|
/* special case : empty frame */
|
||||||
if (cctx->stage == ZSTDcs_init) {
|
if (cctx->stage == ZSTDcs_init) {
|
||||||
fhSize = ZSTD_writeFrameHeader(dst, dstCapacity, cctx->appliedParams, 0, 0);
|
fhSize = ZSTD_writeFrameHeader(dst, dstCapacity, cctx->appliedParams, 0, 0);
|
||||||
FORWARD_ERROR(fhSize);
|
FORWARD_IF_ERROR(fhSize);
|
||||||
dstCapacity -= fhSize;
|
dstCapacity -= fhSize;
|
||||||
op += fhSize;
|
op += fhSize;
|
||||||
cctx->stage = ZSTDcs_ongoing;
|
cctx->stage = ZSTDcs_ongoing;
|
||||||
@ -3305,9 +3305,9 @@ size_t ZSTD_compressEnd (ZSTD_CCtx* cctx,
|
|||||||
size_t const cSize = ZSTD_compressContinue_internal(cctx,
|
size_t const cSize = ZSTD_compressContinue_internal(cctx,
|
||||||
dst, dstCapacity, src, srcSize,
|
dst, dstCapacity, src, srcSize,
|
||||||
1 /* frame mode */, 1 /* last chunk */);
|
1 /* frame mode */, 1 /* last chunk */);
|
||||||
FORWARD_ERROR(cSize);
|
FORWARD_IF_ERROR(cSize);
|
||||||
endResult = ZSTD_writeEpilogue(cctx, (char*)dst + cSize, dstCapacity-cSize);
|
endResult = ZSTD_writeEpilogue(cctx, (char*)dst + cSize, dstCapacity-cSize);
|
||||||
FORWARD_ERROR(endResult);
|
FORWARD_IF_ERROR(endResult);
|
||||||
assert(!(cctx->appliedParams.fParams.contentSizeFlag && cctx->pledgedSrcSizePlusOne == 0));
|
assert(!(cctx->appliedParams.fParams.contentSizeFlag && cctx->pledgedSrcSizePlusOne == 0));
|
||||||
if (cctx->pledgedSrcSizePlusOne != 0) { /* control src size */
|
if (cctx->pledgedSrcSizePlusOne != 0) { /* control src size */
|
||||||
ZSTD_STATIC_ASSERT(ZSTD_CONTENTSIZE_UNKNOWN == (unsigned long long)-1);
|
ZSTD_STATIC_ASSERT(ZSTD_CONTENTSIZE_UNKNOWN == (unsigned long long)-1);
|
||||||
@ -3346,7 +3346,7 @@ size_t ZSTD_compress_advanced (ZSTD_CCtx* cctx,
|
|||||||
ZSTD_parameters params)
|
ZSTD_parameters params)
|
||||||
{
|
{
|
||||||
DEBUGLOG(4, "ZSTD_compress_advanced");
|
DEBUGLOG(4, "ZSTD_compress_advanced");
|
||||||
FORWARD_ERROR(ZSTD_checkCParams(params.cParams));
|
FORWARD_IF_ERROR(ZSTD_checkCParams(params.cParams));
|
||||||
return ZSTD_compress_internal(cctx,
|
return ZSTD_compress_internal(cctx,
|
||||||
dst, dstCapacity,
|
dst, dstCapacity,
|
||||||
src, srcSize,
|
src, srcSize,
|
||||||
@ -3363,7 +3363,7 @@ size_t ZSTD_compress_advanced_internal(
|
|||||||
ZSTD_CCtx_params params)
|
ZSTD_CCtx_params params)
|
||||||
{
|
{
|
||||||
DEBUGLOG(4, "ZSTD_compress_advanced_internal (srcSize:%u)", (unsigned)srcSize);
|
DEBUGLOG(4, "ZSTD_compress_advanced_internal (srcSize:%u)", (unsigned)srcSize);
|
||||||
FORWARD_ERROR( ZSTD_compressBegin_internal(cctx,
|
FORWARD_IF_ERROR( ZSTD_compressBegin_internal(cctx,
|
||||||
dict, dictSize, ZSTD_dct_auto, ZSTD_dtlm_fast, NULL,
|
dict, dictSize, ZSTD_dct_auto, ZSTD_dtlm_fast, NULL,
|
||||||
params, srcSize, ZSTDb_not_buffered) );
|
params, srcSize, ZSTDb_not_buffered) );
|
||||||
return ZSTD_compressEnd(cctx, dst, dstCapacity, src, srcSize);
|
return ZSTD_compressEnd(cctx, dst, dstCapacity, src, srcSize);
|
||||||
@ -3473,7 +3473,7 @@ static size_t ZSTD_initCDict_internal(
|
|||||||
&cdict->cBlockState, &cdict->matchState, ¶ms,
|
&cdict->cBlockState, &cdict->matchState, ¶ms,
|
||||||
cdict->dictContent, cdict->dictContentSize,
|
cdict->dictContent, cdict->dictContentSize,
|
||||||
dictContentType, ZSTD_dtlm_full, cdict->workspace);
|
dictContentType, ZSTD_dtlm_full, cdict->workspace);
|
||||||
FORWARD_ERROR(dictID);
|
FORWARD_IF_ERROR(dictID);
|
||||||
assert(dictID <= (size_t)(U32)-1);
|
assert(dictID <= (size_t)(U32)-1);
|
||||||
cdict->dictID = (U32)dictID;
|
cdict->dictID = (U32)dictID;
|
||||||
}
|
}
|
||||||
@ -3639,7 +3639,7 @@ size_t ZSTD_compress_usingCDict_advanced(ZSTD_CCtx* cctx,
|
|||||||
const void* src, size_t srcSize,
|
const void* src, size_t srcSize,
|
||||||
const ZSTD_CDict* cdict, ZSTD_frameParameters fParams)
|
const ZSTD_CDict* cdict, ZSTD_frameParameters fParams)
|
||||||
{
|
{
|
||||||
FORWARD_ERROR(ZSTD_compressBegin_usingCDict_advanced(cctx, cdict, fParams, srcSize)); /* will check if cdict != NULL */
|
FORWARD_IF_ERROR(ZSTD_compressBegin_usingCDict_advanced(cctx, cdict, fParams, srcSize)); /* will check if cdict != NULL */
|
||||||
return ZSTD_compressEnd(cctx, dst, dstCapacity, src, srcSize);
|
return ZSTD_compressEnd(cctx, dst, dstCapacity, src, srcSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3707,7 +3707,7 @@ static size_t ZSTD_resetCStream_internal(ZSTD_CStream* cctx,
|
|||||||
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 */
|
||||||
|
|
||||||
FORWARD_ERROR( ZSTD_compressBegin_internal(cctx,
|
FORWARD_IF_ERROR( ZSTD_compressBegin_internal(cctx,
|
||||||
dict, dictSize, dictContentType, ZSTD_dtlm_fast,
|
dict, dictSize, dictContentType, ZSTD_dtlm_fast,
|
||||||
cdict,
|
cdict,
|
||||||
params, pledgedSrcSize,
|
params, pledgedSrcSize,
|
||||||
@ -3808,7 +3808,7 @@ size_t ZSTD_initCStream_advanced(ZSTD_CStream* zcs,
|
|||||||
{
|
{
|
||||||
DEBUGLOG(4, "ZSTD_initCStream_advanced: pledgedSrcSize=%u, flag=%u",
|
DEBUGLOG(4, "ZSTD_initCStream_advanced: pledgedSrcSize=%u, flag=%u",
|
||||||
(unsigned)pledgedSrcSize, params.fParams.contentSizeFlag);
|
(unsigned)pledgedSrcSize, params.fParams.contentSizeFlag);
|
||||||
FORWARD_ERROR( ZSTD_checkCParams(params.cParams) );
|
FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) );
|
||||||
if ((pledgedSrcSize==0) && (params.fParams.contentSizeFlag==0)) pledgedSrcSize = ZSTD_CONTENTSIZE_UNKNOWN; /* for compatibility with older programs relying on this behavior. Users should now specify ZSTD_CONTENTSIZE_UNKNOWN. This line will be removed in the future. */
|
if ((pledgedSrcSize==0) && (params.fParams.contentSizeFlag==0)) pledgedSrcSize = ZSTD_CONTENTSIZE_UNKNOWN; /* for compatibility with older programs relying on this behavior. Users should now specify ZSTD_CONTENTSIZE_UNKNOWN. This line will be removed in the future. */
|
||||||
zcs->requestedParams = ZSTD_assignParamsToCCtxParams(zcs->requestedParams, params);
|
zcs->requestedParams = ZSTD_assignParamsToCCtxParams(zcs->requestedParams, params);
|
||||||
return ZSTD_initCStream_internal(zcs, dict, dictSize, NULL /*cdict*/, zcs->requestedParams, pledgedSrcSize);
|
return ZSTD_initCStream_internal(zcs, dict, dictSize, NULL /*cdict*/, zcs->requestedParams, pledgedSrcSize);
|
||||||
@ -3890,7 +3890,7 @@ size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs,
|
|||||||
size_t const cSize = ZSTD_compressEnd(zcs,
|
size_t const cSize = ZSTD_compressEnd(zcs,
|
||||||
op, oend-op, ip, iend-ip);
|
op, oend-op, ip, iend-ip);
|
||||||
DEBUGLOG(4, "ZSTD_compressEnd : cSize=%u", (unsigned)cSize);
|
DEBUGLOG(4, "ZSTD_compressEnd : cSize=%u", (unsigned)cSize);
|
||||||
FORWARD_ERROR(cSize);
|
FORWARD_IF_ERROR(cSize);
|
||||||
ip = iend;
|
ip = iend;
|
||||||
op += cSize;
|
op += cSize;
|
||||||
zcs->frameEnded = 1;
|
zcs->frameEnded = 1;
|
||||||
@ -3931,7 +3931,7 @@ size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs,
|
|||||||
zcs->inBuff + zcs->inToCompress, iSize) :
|
zcs->inBuff + zcs->inToCompress, iSize) :
|
||||||
ZSTD_compressContinue(zcs, cDst, oSize,
|
ZSTD_compressContinue(zcs, cDst, oSize,
|
||||||
zcs->inBuff + zcs->inToCompress, iSize);
|
zcs->inBuff + zcs->inToCompress, iSize);
|
||||||
FORWARD_ERROR(cSize);
|
FORWARD_IF_ERROR(cSize);
|
||||||
zcs->frameEnded = lastBlock;
|
zcs->frameEnded = lastBlock;
|
||||||
/* prepare next block */
|
/* prepare next block */
|
||||||
zcs->inBuffTarget = zcs->inBuffPos + zcs->blockSize;
|
zcs->inBuffTarget = zcs->inBuffPos + zcs->blockSize;
|
||||||
@ -4007,7 +4007,7 @@ static size_t ZSTD_nextInputSizeHint_MTorST(const ZSTD_CCtx* cctx)
|
|||||||
|
|
||||||
size_t ZSTD_compressStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output, ZSTD_inBuffer* input)
|
size_t ZSTD_compressStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output, ZSTD_inBuffer* input)
|
||||||
{
|
{
|
||||||
FORWARD_ERROR( ZSTD_compressStream2(zcs, output, input, ZSTD_e_continue) );
|
FORWARD_IF_ERROR( ZSTD_compressStream2(zcs, output, input, ZSTD_e_continue) );
|
||||||
return ZSTD_nextInputSizeHint_MTorST(zcs);
|
return ZSTD_nextInputSizeHint_MTorST(zcs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4049,7 +4049,7 @@ size_t ZSTD_compressStream2( ZSTD_CCtx* cctx,
|
|||||||
}
|
}
|
||||||
/* mt compression */
|
/* mt compression */
|
||||||
DEBUGLOG(4, "call ZSTDMT_initCStream_internal as nbWorkers=%u", params.nbWorkers);
|
DEBUGLOG(4, "call ZSTDMT_initCStream_internal as nbWorkers=%u", params.nbWorkers);
|
||||||
FORWARD_ERROR( ZSTDMT_initCStream_internal(
|
FORWARD_IF_ERROR( ZSTDMT_initCStream_internal(
|
||||||
cctx->mtctx,
|
cctx->mtctx,
|
||||||
prefixDict.dict, prefixDict.dictSize, ZSTD_dct_rawContent,
|
prefixDict.dict, prefixDict.dictSize, ZSTD_dct_rawContent,
|
||||||
cctx->cdict, params, cctx->pledgedSrcSizePlusOne-1) );
|
cctx->cdict, params, cctx->pledgedSrcSizePlusOne-1) );
|
||||||
@ -4057,7 +4057,7 @@ size_t ZSTD_compressStream2( ZSTD_CCtx* cctx,
|
|||||||
cctx->appliedParams.nbWorkers = params.nbWorkers;
|
cctx->appliedParams.nbWorkers = params.nbWorkers;
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{ FORWARD_ERROR( ZSTD_resetCStream_internal(cctx,
|
{ FORWARD_IF_ERROR( ZSTD_resetCStream_internal(cctx,
|
||||||
prefixDict.dict, prefixDict.dictSize, prefixDict.dictContentType,
|
prefixDict.dict, prefixDict.dictSize, prefixDict.dictContentType,
|
||||||
cctx->cdict,
|
cctx->cdict,
|
||||||
params, cctx->pledgedSrcSizePlusOne-1) );
|
params, cctx->pledgedSrcSizePlusOne-1) );
|
||||||
@ -4082,7 +4082,7 @@ size_t ZSTD_compressStream2( ZSTD_CCtx* cctx,
|
|||||||
return flushMin;
|
return flushMin;
|
||||||
} }
|
} }
|
||||||
#endif
|
#endif
|
||||||
FORWARD_ERROR( ZSTD_compressStream_generic(cctx, output, input, endOp) );
|
FORWARD_IF_ERROR( ZSTD_compressStream_generic(cctx, output, input, endOp) );
|
||||||
DEBUGLOG(5, "completed ZSTD_compressStream2");
|
DEBUGLOG(5, "completed ZSTD_compressStream2");
|
||||||
return cctx->outBuffContentSize - cctx->outBuffFlushedSize; /* remaining to flush */
|
return cctx->outBuffContentSize - cctx->outBuffFlushedSize; /* remaining to flush */
|
||||||
}
|
}
|
||||||
@ -4113,7 +4113,7 @@ size_t ZSTD_compress2(ZSTD_CCtx* cctx,
|
|||||||
dst, dstCapacity, &oPos,
|
dst, dstCapacity, &oPos,
|
||||||
src, srcSize, &iPos,
|
src, srcSize, &iPos,
|
||||||
ZSTD_e_end);
|
ZSTD_e_end);
|
||||||
FORWARD_ERROR(result);
|
FORWARD_IF_ERROR(result);
|
||||||
if (result != 0) { /* compression not completed, due to lack of output space */
|
if (result != 0) { /* compression not completed, due to lack of output space */
|
||||||
assert(oPos == dstCapacity);
|
assert(oPos == dstCapacity);
|
||||||
RETURN_ERROR(dstSize_tooSmall);
|
RETURN_ERROR(dstSize_tooSmall);
|
||||||
@ -4138,7 +4138,7 @@ size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output)
|
|||||||
{
|
{
|
||||||
ZSTD_inBuffer input = { NULL, 0, 0 };
|
ZSTD_inBuffer input = { NULL, 0, 0 };
|
||||||
size_t const remainingToFlush = ZSTD_compressStream2(zcs, output, &input, ZSTD_e_end);
|
size_t const remainingToFlush = ZSTD_compressStream2(zcs, output, &input, ZSTD_e_end);
|
||||||
FORWARD_ERROR( remainingToFlush );
|
FORWARD_IF_ERROR( remainingToFlush );
|
||||||
if (zcs->appliedParams.nbWorkers > 0) return remainingToFlush; /* minimal estimation */
|
if (zcs->appliedParams.nbWorkers > 0) return remainingToFlush; /* minimal estimation */
|
||||||
/* single thread mode : attempt to calculate remaining to flush more precisely */
|
/* single thread mode : attempt to calculate remaining to flush more precisely */
|
||||||
{ size_t const lastBlockSize = zcs->frameEnded ? 0 : ZSTD_BLOCKHEADERSIZE;
|
{ size_t const lastBlockSize = zcs->frameEnded ? 0 : ZSTD_BLOCKHEADERSIZE;
|
||||||
|
@ -1056,7 +1056,7 @@ static ZSTD_CCtx_params ZSTDMT_initJobCCtxParams(ZSTD_CCtx_params const params)
|
|||||||
static size_t ZSTDMT_resize(ZSTDMT_CCtx* mtctx, unsigned nbWorkers)
|
static size_t ZSTDMT_resize(ZSTDMT_CCtx* mtctx, unsigned nbWorkers)
|
||||||
{
|
{
|
||||||
if (POOL_resize(mtctx->factory, nbWorkers)) return ERROR(memory_allocation);
|
if (POOL_resize(mtctx->factory, nbWorkers)) return ERROR(memory_allocation);
|
||||||
FORWARD_ERROR( ZSTDMT_expandJobsTable(mtctx, nbWorkers) );
|
FORWARD_IF_ERROR( ZSTDMT_expandJobsTable(mtctx, nbWorkers) );
|
||||||
mtctx->bufPool = ZSTDMT_expandBufferPool(mtctx->bufPool, nbWorkers);
|
mtctx->bufPool = ZSTDMT_expandBufferPool(mtctx->bufPool, nbWorkers);
|
||||||
if (mtctx->bufPool == NULL) return ERROR(memory_allocation);
|
if (mtctx->bufPool == NULL) return ERROR(memory_allocation);
|
||||||
mtctx->cctxPool = ZSTDMT_expandCCtxPool(mtctx->cctxPool, nbWorkers);
|
mtctx->cctxPool = ZSTDMT_expandCCtxPool(mtctx->cctxPool, nbWorkers);
|
||||||
@ -1263,7 +1263,7 @@ static size_t ZSTDMT_compress_advanced_internal(
|
|||||||
if (ZSTDMT_serialState_reset(&mtctx->serial, mtctx->seqPool, params, avgJobSize))
|
if (ZSTDMT_serialState_reset(&mtctx->serial, mtctx->seqPool, params, avgJobSize))
|
||||||
return ERROR(memory_allocation);
|
return ERROR(memory_allocation);
|
||||||
|
|
||||||
FORWARD_ERROR( ZSTDMT_expandJobsTable(mtctx, nbJobs) ); /* only expands if necessary */
|
FORWARD_IF_ERROR( ZSTDMT_expandJobsTable(mtctx, nbJobs) ); /* only expands if necessary */
|
||||||
|
|
||||||
{ unsigned u;
|
{ unsigned u;
|
||||||
for (u=0; u<nbJobs; u++) {
|
for (u=0; u<nbJobs; u++) {
|
||||||
@ -1396,7 +1396,7 @@ size_t ZSTDMT_initCStream_internal(
|
|||||||
|
|
||||||
/* init */
|
/* init */
|
||||||
if (params.nbWorkers != mtctx->params.nbWorkers)
|
if (params.nbWorkers != mtctx->params.nbWorkers)
|
||||||
FORWARD_ERROR( ZSTDMT_resize(mtctx, params.nbWorkers) );
|
FORWARD_IF_ERROR( ZSTDMT_resize(mtctx, params.nbWorkers) );
|
||||||
|
|
||||||
if (params.jobSize != 0 && params.jobSize < ZSTDMT_JOBSIZE_MIN) params.jobSize = ZSTDMT_JOBSIZE_MIN;
|
if (params.jobSize != 0 && params.jobSize < ZSTDMT_JOBSIZE_MIN) params.jobSize = ZSTDMT_JOBSIZE_MIN;
|
||||||
if (params.jobSize > (size_t)ZSTDMT_JOBSIZE_MAX) params.jobSize = ZSTDMT_JOBSIZE_MAX;
|
if (params.jobSize > (size_t)ZSTDMT_JOBSIZE_MAX) params.jobSize = ZSTDMT_JOBSIZE_MAX;
|
||||||
@ -2051,7 +2051,7 @@ size_t ZSTDMT_compressStream_generic(ZSTDMT_CCtx* mtctx,
|
|||||||
|| ((endOp == ZSTD_e_end) && (!mtctx->frameEnded)) ) { /* must finish the frame with a zero-size block */
|
|| ((endOp == ZSTD_e_end) && (!mtctx->frameEnded)) ) { /* must finish the frame with a zero-size block */
|
||||||
size_t const jobSize = mtctx->inBuff.filled;
|
size_t const jobSize = mtctx->inBuff.filled;
|
||||||
assert(mtctx->inBuff.filled <= mtctx->targetSectionSize);
|
assert(mtctx->inBuff.filled <= mtctx->targetSectionSize);
|
||||||
FORWARD_ERROR( ZSTDMT_createCompressionJob(mtctx, jobSize, endOp) );
|
FORWARD_IF_ERROR( ZSTDMT_createCompressionJob(mtctx, jobSize, endOp) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check for potential compressed data ready to be flushed */
|
/* check for potential compressed data ready to be flushed */
|
||||||
@ -2065,7 +2065,7 @@ size_t ZSTDMT_compressStream_generic(ZSTDMT_CCtx* mtctx,
|
|||||||
|
|
||||||
size_t ZSTDMT_compressStream(ZSTDMT_CCtx* mtctx, ZSTD_outBuffer* output, ZSTD_inBuffer* input)
|
size_t ZSTDMT_compressStream(ZSTDMT_CCtx* mtctx, ZSTD_outBuffer* output, ZSTD_inBuffer* input)
|
||||||
{
|
{
|
||||||
FORWARD_ERROR( ZSTDMT_compressStream_generic(mtctx, output, input, ZSTD_e_continue) );
|
FORWARD_IF_ERROR( ZSTDMT_compressStream_generic(mtctx, output, input, ZSTD_e_continue) );
|
||||||
|
|
||||||
/* recommended next input size : fill current input buffer */
|
/* recommended next input size : fill current input buffer */
|
||||||
return mtctx->targetSectionSize - mtctx->inBuff.filled; /* note : could be zero when input buffer is fully filled and no more availability to create new job */
|
return mtctx->targetSectionSize - mtctx->inBuff.filled; /* note : could be zero when input buffer is fully filled and no more availability to create new job */
|
||||||
@ -2082,7 +2082,7 @@ static size_t ZSTDMT_flushStream_internal(ZSTDMT_CCtx* mtctx, ZSTD_outBuffer* ou
|
|||||||
|| ((endFrame==ZSTD_e_end) && !mtctx->frameEnded)) { /* need a last 0-size block to end frame */
|
|| ((endFrame==ZSTD_e_end) && !mtctx->frameEnded)) { /* need a last 0-size block to end frame */
|
||||||
DEBUGLOG(5, "ZSTDMT_flushStream_internal : create a new job (%u bytes, end:%u)",
|
DEBUGLOG(5, "ZSTDMT_flushStream_internal : create a new job (%u bytes, end:%u)",
|
||||||
(U32)srcSize, (U32)endFrame);
|
(U32)srcSize, (U32)endFrame);
|
||||||
FORWARD_ERROR( ZSTDMT_createCompressionJob(mtctx, srcSize, endFrame) );
|
FORWARD_IF_ERROR( ZSTDMT_createCompressionJob(mtctx, srcSize, endFrame) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* check if there is any data available to flush */
|
/* check if there is any data available to flush */
|
||||||
|
@ -133,7 +133,7 @@ static size_t ZSTD_initDDict_internal(ZSTD_DDict* ddict,
|
|||||||
ddict->entropy.hufTable[0] = (HUF_DTable)((HufLog)*0x1000001); /* cover both little and big endian */
|
ddict->entropy.hufTable[0] = (HUF_DTable)((HufLog)*0x1000001); /* cover both little and big endian */
|
||||||
|
|
||||||
/* parse dictionary content */
|
/* parse dictionary content */
|
||||||
FORWARD_ERROR( ZSTD_loadEntropy_intoDDict(ddict, dictContentType) );
|
FORWARD_IF_ERROR( ZSTD_loadEntropy_intoDDict(ddict, dictContentType) );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -567,7 +567,7 @@ static size_t ZSTD_decompressFrame(ZSTD_DCtx* dctx,
|
|||||||
if (ZSTD_isError(frameHeaderSize)) return frameHeaderSize;
|
if (ZSTD_isError(frameHeaderSize)) return frameHeaderSize;
|
||||||
RETURN_ERROR_IF(remainingSrcSize < frameHeaderSize+ZSTD_blockHeaderSize,
|
RETURN_ERROR_IF(remainingSrcSize < frameHeaderSize+ZSTD_blockHeaderSize,
|
||||||
srcSize_wrong);
|
srcSize_wrong);
|
||||||
FORWARD_ERROR( ZSTD_decodeFrameHeader(dctx, ip, frameHeaderSize) );
|
FORWARD_IF_ERROR( ZSTD_decodeFrameHeader(dctx, ip, frameHeaderSize) );
|
||||||
ip += frameHeaderSize; remainingSrcSize -= frameHeaderSize;
|
ip += frameHeaderSize; remainingSrcSize -= frameHeaderSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -684,11 +684,11 @@ static size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx,
|
|||||||
|
|
||||||
if (ddict) {
|
if (ddict) {
|
||||||
/* we were called from ZSTD_decompress_usingDDict */
|
/* we were called from ZSTD_decompress_usingDDict */
|
||||||
FORWARD_ERROR(ZSTD_decompressBegin_usingDDict(dctx, ddict));
|
FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDDict(dctx, ddict));
|
||||||
} else {
|
} else {
|
||||||
/* this will initialize correctly with no dict if dict == NULL, so
|
/* this will initialize correctly with no dict if dict == NULL, so
|
||||||
* use this in all cases but ddict */
|
* use this in all cases but ddict */
|
||||||
FORWARD_ERROR(ZSTD_decompressBegin_usingDict(dctx, dict, dictSize));
|
FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDict(dctx, dict, dictSize));
|
||||||
}
|
}
|
||||||
ZSTD_checkContinuity(dctx, dst);
|
ZSTD_checkContinuity(dctx, dst);
|
||||||
|
|
||||||
@ -815,7 +815,7 @@ size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, c
|
|||||||
case ZSTDds_decodeFrameHeader:
|
case ZSTDds_decodeFrameHeader:
|
||||||
assert(src != NULL);
|
assert(src != NULL);
|
||||||
memcpy(dctx->headerBuffer + (dctx->headerSize - srcSize), src, srcSize);
|
memcpy(dctx->headerBuffer + (dctx->headerSize - srcSize), src, srcSize);
|
||||||
FORWARD_ERROR(ZSTD_decodeFrameHeader(dctx, dctx->headerBuffer, dctx->headerSize));
|
FORWARD_IF_ERROR(ZSTD_decodeFrameHeader(dctx, dctx->headerBuffer, dctx->headerSize));
|
||||||
dctx->expected = ZSTD_blockHeaderSize;
|
dctx->expected = ZSTD_blockHeaderSize;
|
||||||
dctx->stage = ZSTDds_decodeBlockHeader;
|
dctx->stage = ZSTDds_decodeBlockHeader;
|
||||||
return 0;
|
return 0;
|
||||||
@ -1063,7 +1063,7 @@ size_t ZSTD_decompressBegin(ZSTD_DCtx* dctx)
|
|||||||
|
|
||||||
size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void* dict, size_t dictSize)
|
size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void* dict, size_t dictSize)
|
||||||
{
|
{
|
||||||
FORWARD_ERROR( ZSTD_decompressBegin(dctx) );
|
FORWARD_IF_ERROR( ZSTD_decompressBegin(dctx) );
|
||||||
if (dict && dictSize)
|
if (dict && dictSize)
|
||||||
RETURN_ERROR_IF(
|
RETURN_ERROR_IF(
|
||||||
ZSTD_isError(ZSTD_decompress_insertDictionary(dctx, dict, dictSize)),
|
ZSTD_isError(ZSTD_decompress_insertDictionary(dctx, dict, dictSize)),
|
||||||
@ -1086,7 +1086,7 @@ size_t ZSTD_decompressBegin_usingDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict)
|
|||||||
DEBUGLOG(4, "DDict is %s",
|
DEBUGLOG(4, "DDict is %s",
|
||||||
dctx->ddictIsCold ? "~cold~" : "hot!");
|
dctx->ddictIsCold ? "~cold~" : "hot!");
|
||||||
}
|
}
|
||||||
FORWARD_ERROR( ZSTD_decompressBegin(dctx) );
|
FORWARD_IF_ERROR( ZSTD_decompressBegin(dctx) );
|
||||||
if (ddict) { /* NULL ddict is equivalent to no dictionary */
|
if (ddict) { /* NULL ddict is equivalent to no dictionary */
|
||||||
ZSTD_copyDDictParameters(dctx, ddict);
|
ZSTD_copyDDictParameters(dctx, ddict);
|
||||||
}
|
}
|
||||||
@ -1218,7 +1218,7 @@ size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, size_t di
|
|||||||
DEBUGLOG(4, "ZSTD_initDStream_usingDict");
|
DEBUGLOG(4, "ZSTD_initDStream_usingDict");
|
||||||
zds->streamStage = zdss_init;
|
zds->streamStage = zdss_init;
|
||||||
zds->noForwardProgress = 0;
|
zds->noForwardProgress = 0;
|
||||||
FORWARD_ERROR( ZSTD_DCtx_loadDictionary(zds, dict, dictSize) );
|
FORWARD_IF_ERROR( ZSTD_DCtx_loadDictionary(zds, dict, dictSize) );
|
||||||
return ZSTD_FRAMEHEADERSIZE_PREFIX;
|
return ZSTD_FRAMEHEADERSIZE_PREFIX;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1448,7 +1448,7 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB
|
|||||||
DEBUGLOG(5, "ZSTD_decompressStream: detected legacy version v0.%u", legacyVersion);
|
DEBUGLOG(5, "ZSTD_decompressStream: detected legacy version v0.%u", legacyVersion);
|
||||||
RETURN_ERROR_IF(zds->staticSize, memory_allocation,
|
RETURN_ERROR_IF(zds->staticSize, memory_allocation,
|
||||||
"legacy support is incompatible with static dctx");
|
"legacy support is incompatible with static dctx");
|
||||||
FORWARD_ERROR(ZSTD_initLegacyStream(&zds->legacyContext,
|
FORWARD_IF_ERROR(ZSTD_initLegacyStream(&zds->legacyContext,
|
||||||
zds->previousLegacyVersion, legacyVersion,
|
zds->previousLegacyVersion, legacyVersion,
|
||||||
dict, dictSize));
|
dict, dictSize));
|
||||||
zds->legacyVersion = zds->previousLegacyVersion = legacyVersion;
|
zds->legacyVersion = zds->previousLegacyVersion = legacyVersion;
|
||||||
@ -1495,13 +1495,13 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB
|
|||||||
|
|
||||||
/* Consume header (see ZSTDds_decodeFrameHeader) */
|
/* Consume header (see ZSTDds_decodeFrameHeader) */
|
||||||
DEBUGLOG(4, "Consume header");
|
DEBUGLOG(4, "Consume header");
|
||||||
FORWARD_ERROR(ZSTD_decompressBegin_usingDDict(zds, zds->ddict));
|
FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDDict(zds, zds->ddict));
|
||||||
|
|
||||||
if ((MEM_readLE32(zds->headerBuffer) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { /* skippable frame */
|
if ((MEM_readLE32(zds->headerBuffer) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { /* skippable frame */
|
||||||
zds->expected = MEM_readLE32(zds->headerBuffer + ZSTD_FRAMEIDSIZE);
|
zds->expected = MEM_readLE32(zds->headerBuffer + ZSTD_FRAMEIDSIZE);
|
||||||
zds->stage = ZSTDds_skipFrame;
|
zds->stage = ZSTDds_skipFrame;
|
||||||
} else {
|
} else {
|
||||||
FORWARD_ERROR(ZSTD_decodeFrameHeader(zds, zds->headerBuffer, zds->lhSize));
|
FORWARD_IF_ERROR(ZSTD_decodeFrameHeader(zds, zds->headerBuffer, zds->lhSize));
|
||||||
zds->expected = ZSTD_blockHeaderSize;
|
zds->expected = ZSTD_blockHeaderSize;
|
||||||
zds->stage = ZSTDds_decodeBlockHeader;
|
zds->stage = ZSTDds_decodeBlockHeader;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user