]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
minor greedy mod
authorYann Collet <yann.collet.73@gmail.com>
Fri, 6 Nov 2015 10:48:56 +0000 (11:48 +0100)
committerYann Collet <yann.collet.73@gmail.com>
Fri, 6 Nov 2015 10:48:56 +0000 (11:48 +0100)
lib/zstdhc.c
programs/paramgrill.c

index 13a035b8fb03f8724cb3df15a5034cb0864cd3bd..d9b587b96bb981161e1efa648964288434c5b287 100644 (file)
@@ -794,6 +794,7 @@ size_t ZSTD_HC_compressBlock_greedy(ZSTD_HC_CCtx* ctx, void* dst, size_t maxDstS
             size_t offset=999999;
             size_t matchLength = ZSTD_HC_HcFindBestMatch_selectMLS(ctx, ip, iend, &offset, maxSearches, mls);
             if (!matchLength) { ip++; continue; }
+            while ((ip>anchor) && (ip-offset>ctx->base) && (ip[-1] == ip[-1-offset])) { ip--; }  /* catch up */
             /* store sequence */
             {
                 size_t litLength = ip-anchor;
index a188a41c5617496bad73a5a707e866404be4c748..5c67772a7dd659b91858fdb74d56924d6f849561 100644 (file)
@@ -997,7 +997,7 @@ int main(int argc, char** argv)
                                 argument++;
                                 while ((*argument>= '0') && (*argument<='9'))
                                     cLevel *= 10, cLevel += *argument++ - '0';
-                                if (cLevel < 2) cLevel = 2;
+                                if (cLevel < 1) cLevel = 1;
                                 if (cLevel > ZSTD_HC_MAX_CLEVEL) cLevel = ZSTD_HC_MAX_CLEVEL;
                                 g_params = g_seedParams[cLevel];
                                 continue;