From e0f26afce97c8049b5d1b7e9fb910721d161ae27 Mon Sep 17 00:00:00 2001 From: senhuang42 Date: Mon, 2 Nov 2020 10:01:18 -0500 Subject: [PATCH] Add sequence compression format param --- lib/compress/zstd_compress.c | 14 +++++++------- lib/zstd.h | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) 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); /***************************************