commit
044c8b4722
|
@ -221,7 +221,11 @@ size_t FSE_buildCTable_wksp(FSE_CTable* ct,
|
|||
****************************************************************/
|
||||
size_t FSE_NCountWriteBound(unsigned maxSymbolValue, unsigned tableLog)
|
||||
{
|
||||
size_t const maxHeaderSize = (((maxSymbolValue+1) * tableLog) >> 3) + 3;
|
||||
size_t const maxHeaderSize = (((maxSymbolValue+1) * tableLog
|
||||
+ 4 /* bitCount initialized at 4 */
|
||||
+ 2 /* first two symbols may use one additional bit each */) / 8)
|
||||
+ 1 /* round up to whole nb bytes */
|
||||
+ 2 /* additional two bytes for bitstream flush */;
|
||||
return maxSymbolValue ? maxHeaderSize : FSE_NCOUNTBOUND; /* maxSymbolValue==0 ? use default */
|
||||
}
|
||||
|
||||
|
|
|
@ -3357,6 +3357,23 @@ static int basicUnitTests(U32 const seed, double compressibility)
|
|||
FSE_normalizeCount(norm, tableLog, count, nbSeq, maxSymbolValue, /* useLowProbCount */ 1);
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : testing FSE_writeNCount() PR#2779: ", testNb++);
|
||||
{
|
||||
size_t const outBufSize = 9;
|
||||
short const count[11] = {1, 0, 1, 0, 1, 0, 1, 0, 1, 9, 18};
|
||||
unsigned const tableLog = 5;
|
||||
unsigned const maxSymbolValue = 10;
|
||||
BYTE* outBuf = (BYTE*)malloc(outBufSize*sizeof(BYTE));
|
||||
|
||||
/* Ensure that this write doesn't write out of bounds, and that
|
||||
* FSE_writeNCount_generic() is *not* called with writeIsSafe == 1.
|
||||
*/
|
||||
FSE_writeNCount(outBuf, outBufSize, count, maxSymbolValue, tableLog);
|
||||
free(outBuf);
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
#ifdef ZSTD_MULTITHREAD
|
||||
DISPLAYLEVEL(3, "test%3i : passing wrong full dict should fail on compressStream2 refPrefix ", testNb++);
|
||||
{ ZSTD_CCtx* cctx = ZSTD_createCCtx();
|
||||
|
|
Loading…
Reference in New Issue