1
0
mirror of https://github.com/facebook/zstd.git synced 2025-09-02 15:41:31 +03:00

simplify sequence resolution in zstd_opt

initially hinted by @pitaj in #4442
This commit is contained in:
Yann Collet
2025-07-18 21:21:47 -07:00
parent afa96bbf25
commit 0055ce7a02

View File

@@ -1382,16 +1382,8 @@ _shortestPath: /* cur, last_pos, best_mlen, best_off have to be set */
assert(storeEnd < ZSTD_OPT_SIZE);
DEBUGLOG(6, "last stretch copied into pos=%u (llen=%u,mlen=%u,ofc=%u)",
storeEnd, lastStretch.litlen, lastStretch.mlen, lastStretch.off);
if (lastStretch.litlen > 0) {
/* last "sequence" is unfinished: just a bunch of literals */
opt[storeEnd].litlen = lastStretch.litlen;
opt[storeEnd].mlen = 0;
storeStart = storeEnd-1;
opt[storeStart] = lastStretch;
} {
opt[storeEnd] = lastStretch; /* note: litlen will be fixed */
storeStart = storeEnd;
}
opt[storeEnd] = lastStretch; /* note: litlen will be fixed */
storeStart = storeEnd;
while (1) {
ZSTD_optimal_t nextStretch = opt[stretchPos];
opt[storeStart].litlen = nextStretch.litlen;