From: senhuang42 Date: Mon, 2 Nov 2020 15:01:18 +0000 (-0500) Subject: Add sequence compression format param X-Git-Tag: v1.4.7~30^2~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e0f26afce97c8049b5d1b7e9fb910721d161ae27;p=thirdparty%2Fzstd.git Add sequence compression format param --- diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index 96d0469b9..0c3983503 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -4582,10 +4582,8 @@ static size_t ZSTD_copySequencesToSeqStore(seqStore_t* seqStore, const ZSTD_sequ U32 posInSequence = seqRange->endPosInSequence; DEBUGLOG(4, "Reached endIdx. idx: %u PIS: %u", idx, posInSequence); if (posInSequence == 0) { - if (inSeqs[seqRange->endIdx - 1].matchLength != 0 || inSeqs[seqRange->endIdx - 1].matchLength != 0) { - printf("Contract violated\n"); - } - return 0; + RETURN_ERROR_IF(inSeqs[seqRange->endIdx - 1].matchLength != 0 || inSeqs[seqRange->endIdx - 1].matchLength != 0, + corruption_detected, "Contract violation"); } assert(posInSequence <= litLength + matchLength); if (posInSequence < litLength) { @@ -4629,7 +4627,8 @@ static size_t ZSTD_copySequencesToSeqStore(seqStore_t* seqStore, const ZSTD_sequ size_t ZSTD_compressSequences_ext_internal(void* dst, size_t dstCapacity, ZSTD_CCtx* cctx, const ZSTD_Sequence* inSeqs, size_t inSeqsSize, - const void* src, size_t srcSize) { + const void* src, size_t srcSize, + ZSTD_sequenceFormat_e format) { U32 cSize = 0; U32 lastBlock; U32 blockSize; @@ -4719,7 +4718,8 @@ size_t ZSTD_compressSequences_ext_internal(void* dst, size_t dstCapacity, size_t ZSTD_compressSequences_ext(void* dst, size_t dstCapacity, const ZSTD_Sequence* inSeqs, size_t inSeqsSize, - const void* src, size_t srcSize, int compressionLevel) { + const void* src, size_t srcSize, int compressionLevel, + ZSTD_sequenceFormat_e format) { DEBUGLOG(4, "ZSTD_compressSequences_ext()"); BYTE* op = (BYTE*)dst; ZSTD_CCtx* const cctx = ZSTD_createCCtx(); @@ -4777,7 +4777,7 @@ size_t ZSTD_compressSequences_ext(void* dst, size_t dstCapacity, /* cSize includes block header size and compressed sequences size */ compressedBlocksSize = ZSTD_compressSequences_ext_internal(op, dstCapacity, cctx, inSeqs, inSeqsSize, - src, srcSize); + src, srcSize, format); if (ZSTD_isError(compressedBlocksSize)) { return compressedBlocksSize; } diff --git a/lib/zstd.h b/lib/zstd.h index 0b97805cd..b86cd03bd 100644 --- a/lib/zstd.h +++ b/lib/zstd.h @@ -1329,7 +1329,8 @@ ZSTDLIB_API size_t ZSTD_generateSequences(ZSTD_CCtx* zc, ZSTD_Sequence* outSeqs, ZSTDLIB_API size_t ZSTD_mergeBlockDelimiters(ZSTD_Sequence* sequences, size_t seqsSize); ZSTDLIB_API size_t ZSTD_compressSequences_ext(void* dst, size_t dstSize, const ZSTD_Sequence* inSeqs, size_t inSeqsSize, - const void* src, size_t srcSize, int compressionLevel); + const void* src, size_t srcSize, int compressionLevel, + ZSTD_sequenceFormat_e format); /***************************************