]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
simplify sequence resolution in zstd_opt opt_simplify_4442 4443/head
authorYann Collet <cyan@fb.com>
Sat, 19 Jul 2025 04:21:47 +0000 (21:21 -0700)
committerYann Collet <cyan@fb.com>
Sat, 19 Jul 2025 04:21:47 +0000 (21:21 -0700)
initially hinted by @pitaj in #4442

lib/compress/zstd_opt.c

index 3d7171b755bde44cf324fb31d4a791e8554f268a..562a6b17bc95db203b70aaa404d4eb5482efe438 100644 (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;