From bbfa7d77c9a802b983b456e1695f7cc82ba2fa37 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Mon, 23 Mar 2015 23:15:22 +0100 Subject: [PATCH] Fixed issue #28 --- lib/fse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/fse.c b/lib/fse.c index e07b951c..2861fd9f 100644 --- 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;