Only load extra table positions for CDicts

Zstdmt uses prefixes to load the overlap between segments. Loading extra
positions makes compression non-deterministic, depending on the previous
job the context was used for. Since loading extra position takes extra
time as well, only do it when creating a `ZSTD_CDict`.

Fixes #1077.
This commit is contained in:
Nick Terrell
2018-04-02 14:41:30 -07:00
parent daf3ab0aad
commit 295ab0dbfa
8 changed files with 44 additions and 24 deletions
+2 -2
View File
@@ -224,12 +224,12 @@ static size_t ZSTD_ldm_fillFastTables(ZSTD_matchState_t* ms,
switch(cParams->strategy)
{
case ZSTD_fast:
ZSTD_fillHashTable(ms, cParams, iend);
ZSTD_fillHashTable(ms, cParams, iend, ZSTD_dtlm_fast);
ms->nextToUpdate = (U32)(iend - ms->window.base);
break;
case ZSTD_dfast:
ZSTD_fillDoubleHashTable(ms, cParams, iend);
ZSTD_fillDoubleHashTable(ms, cParams, iend, ZSTD_dtlm_fast);
ms->nextToUpdate = (U32)(iend - ms->window.base);
break;