]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Fixed issue #28
authorYann Collet <yann.collet.73@gmail.com>
Mon, 23 Mar 2015 22:15:22 +0000 (23:15 +0100)
committerYann Collet <yann.collet.73@gmail.com>
Mon, 23 Mar 2015 22:15:22 +0000 (23:15 +0100)
lib/fse.c

index e07b951cdec4d69facdb9466501c6f526e0b8885..2861fd9f108e4b3088075844fff30215ed58961c 100644 (file)
--- a/lib/fse.c
+++ b/lib/fse.c
@@ -542,7 +542,7 @@ unsigned FSE_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxS
     U32 tableLog = maxTableLog;
     if (tableLog==0) tableLog = FSE_DEFAULT_TABLELOG;
     if ((FSE_highbit32((U32)(srcSize - 1)) - 2) < tableLog) tableLog = FSE_highbit32((U32)(srcSize - 1)) - 2;   /* Accuracy can be reduced */
-    if ((FSE_highbit32(maxSymbolValue+1)+1) > tableLog) tableLog = FSE_highbit32(maxSymbolValue+1)+1;   /* Need a minimum to safely represent all symbol values */
+    if ((FSE_highbit32(maxSymbolValue)+2) > tableLog) tableLog = FSE_highbit32(maxSymbolValue)+2;   /* Need a minimum to safely represent all symbol values */
     if (tableLog < FSE_MIN_TABLELOG) tableLog = FSE_MIN_TABLELOG;
     if (tableLog > FSE_MAX_TABLELOG) tableLog = FSE_MAX_TABLELOG;
     return tableLog;