Expose and call ZSTD_ldm_skipRawSeqStoreBytes()
This commit is contained in:
parent
ee84817fe7
commit
4d01979b62
@ -2374,7 +2374,11 @@ static size_t ZSTD_buildSeqStore(ZSTD_CCtx* zc, const void* src, size_t srcSize)
|
|||||||
/* Assert that we have correctly flushed the ctx params into the ms's copy */
|
/* Assert that we have correctly flushed the ctx params into the ms's copy */
|
||||||
ZSTD_assertEqualCParams(zc->appliedParams.cParams, ms->cParams);
|
ZSTD_assertEqualCParams(zc->appliedParams.cParams, ms->cParams);
|
||||||
if (srcSize < MIN_CBLOCK_SIZE+ZSTD_blockHeaderSize+1) {
|
if (srcSize < MIN_CBLOCK_SIZE+ZSTD_blockHeaderSize+1) {
|
||||||
ZSTD_ldm_skipSequences(&zc->externSeqStore, srcSize, zc->appliedParams.cParams.minMatch);
|
if (zc->appliedParams.cParams.strategy >= ZSTD_btopt) {
|
||||||
|
ZSTD_ldm_skipRawSeqStoreBytes(&zc->externSeqStore, srcSize);
|
||||||
|
} else {
|
||||||
|
ZSTD_ldm_skipSequences(&zc->externSeqStore, srcSize, zc->appliedParams.cParams.minMatch);
|
||||||
|
}
|
||||||
return ZSTDbss_noCompress; /* don't even attempt compression below a certain srcSize */
|
return ZSTDbss_noCompress; /* don't even attempt compression below a certain srcSize */
|
||||||
}
|
}
|
||||||
ZSTD_resetSeqStore(&(zc->seqStore));
|
ZSTD_resetSeqStore(&(zc->seqStore));
|
||||||
|
@ -555,10 +555,7 @@ static rawSeq maybeSplitSequence(rawSeqStore_t* rawSeqStore,
|
|||||||
return sequence;
|
return sequence;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ZSTD_ldm_skipRawSeqStoreBytes():
|
void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes) {
|
||||||
* Moves forward in rawSeqStore by nbBytes, updating fields 'pos' and 'posInSequence'.
|
|
||||||
*/
|
|
||||||
static void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes) {
|
|
||||||
U32 currPos = (U32)(rawSeqStore->posInSequence + nbBytes);
|
U32 currPos = (U32)(rawSeqStore->posInSequence + nbBytes);
|
||||||
while (currPos && rawSeqStore->pos < rawSeqStore->size) {
|
while (currPos && rawSeqStore->pos < rawSeqStore->size) {
|
||||||
rawSeq currSeq = rawSeqStore->seq[rawSeqStore->pos];
|
rawSeq currSeq = rawSeqStore->seq[rawSeqStore->pos];
|
||||||
|
@ -78,6 +78,12 @@ size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore,
|
|||||||
void ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize,
|
void ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize,
|
||||||
U32 const minMatch);
|
U32 const minMatch);
|
||||||
|
|
||||||
|
/* ZSTD_ldm_skipRawSeqStoreBytes():
|
||||||
|
* Moves forward in rawSeqStore by nbBytes, updating fields 'pos' and 'posInSequence'.
|
||||||
|
* Not to be used in conjunction with ZSTD_ldm_skipSequences().
|
||||||
|
* Must be called for data with is not passed to ZSTD_ldm_blockCompress().
|
||||||
|
*/
|
||||||
|
void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes);
|
||||||
|
|
||||||
/** ZSTD_ldm_getTableSize() :
|
/** ZSTD_ldm_getTableSize() :
|
||||||
* Estimate the space needed for long distance matching tables or 0 if LDM is
|
* Estimate the space needed for long distance matching tables or 0 if LDM is
|
||||||
|
Loading…
Reference in New Issue
Block a user