Add base adjustment correction
This commit is contained in:
parent
5df9b5e05f
commit
f57c7e6bbf
@ -579,8 +579,15 @@ size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore,
|
|||||||
if (cParams->strategy >= ZSTD_btopt) {
|
if (cParams->strategy >= ZSTD_btopt) {
|
||||||
size_t lastLLSize;
|
size_t lastLLSize;
|
||||||
ms->ldmSeqStore = *rawSeqStore; /* copy current seqStore */
|
ms->ldmSeqStore = *rawSeqStore; /* copy current seqStore */
|
||||||
|
const BYTE* const prevBase = (BYTE const*)ms->window.base;
|
||||||
lastLLSize = blockCompressor(ms, seqStore, rep, src, srcSize);
|
lastLLSize = blockCompressor(ms, seqStore, rep, src, srcSize);
|
||||||
rawSeqStore->pos = ms->ldmSeqStore.pos;
|
rawSeqStore->pos = ms->ldmSeqStore.pos;
|
||||||
|
ms->ldmSeqStore = *rawSeqStore;
|
||||||
|
if (prevBase != ms->window.base) {
|
||||||
|
int baseDiff = (int)(prevBase - ms->window.base);
|
||||||
|
printf("Bases were different, adjusting, diff = %d\n", baseDiff);
|
||||||
|
rawSeqStore->seq[rawSeqStore->pos].litLength += baseDiff;
|
||||||
|
}
|
||||||
return lastLLSize;
|
return lastLLSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user