Add support for repcodes
This commit is contained in:
@@ -4505,7 +4505,11 @@ static size_t ZSTD_copySequencesToSeqStore(ZSTD_CCtx* zc,
|
|||||||
U32 offCode = inSeqs[idx].offset + ZSTD_REP_MOVE;
|
U32 offCode = inSeqs[idx].offset + ZSTD_REP_MOVE;
|
||||||
RETURN_ERROR_IF(matchLength < MINMATCH, corruption_detected, "Matchlength too small!");
|
RETURN_ERROR_IF(matchLength < MINMATCH, corruption_detected, "Matchlength too small!");
|
||||||
DEBUGLOG(7, "Seqstore idx: %zu, seq: (ll: %u, ml: %u, of: %u)", idx, litLength, matchLength, offCode);
|
DEBUGLOG(7, "Seqstore idx: %zu, seq: (ll: %u, ml: %u, of: %u)", idx, litLength, matchLength, offCode);
|
||||||
|
if (inSeqs[idx].rep) {
|
||||||
|
ZSTD_storeSeq(&zc->seqStore, litLength, ip, iend, inSeqs[idx].rep - 1, matchLength - MINMATCH);
|
||||||
|
} else {
|
||||||
ZSTD_storeSeq(&zc->seqStore, litLength, ip, iend, offCode, matchLength - MINMATCH);
|
ZSTD_storeSeq(&zc->seqStore, litLength, ip, iend, offCode, matchLength - MINMATCH);
|
||||||
|
}
|
||||||
ip += matchLength + litLength;
|
ip += matchLength + litLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -497,6 +497,9 @@ static void ZSTD_safecopyLiterals(BYTE* op, BYTE const* ip, BYTE const* const ie
|
|||||||
HINT_INLINE UNUSED_ATTR
|
HINT_INLINE UNUSED_ATTR
|
||||||
void ZSTD_storeSeq(seqStore_t* seqStorePtr, size_t litLength, const BYTE* literals, const BYTE* litLimit, U32 offCode, size_t mlBase)
|
void ZSTD_storeSeq(seqStore_t* seqStorePtr, size_t litLength, const BYTE* literals, const BYTE* litLimit, U32 offCode, size_t mlBase)
|
||||||
{
|
{
|
||||||
|
if (offCode <= 3) {
|
||||||
|
printf("of: %u ml: %u ll: %u\n", offCode, mlBase, litLength);
|
||||||
|
}
|
||||||
BYTE const* const litLimit_w = litLimit - WILDCOPY_OVERLENGTH;
|
BYTE const* const litLimit_w = litLimit - WILDCOPY_OVERLENGTH;
|
||||||
BYTE const* const litEnd = literals + litLength;
|
BYTE const* const litEnd = literals + litLength;
|
||||||
#if defined(DEBUGLEVEL) && (DEBUGLEVEL >= 6)
|
#if defined(DEBUGLEVEL) && (DEBUGLEVEL >= 6)
|
||||||
|
|||||||
Reference in New Issue
Block a user