From: Meghna Malhotra Date: Sat, 1 Feb 2020 23:34:51 +0000 (-0800) Subject: WIP: Still getting an error X-Git-Tag: v1.4.5^2~51^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fe8402b5223c8b716e8c0b35884e317ae4478cef;p=thirdparty%2Fzstd.git WIP: Still getting an error --- diff --git a/lib/compress/huf_compress.c b/lib/compress/huf_compress.c index f0b210725..179a68f45 100644 --- a/lib/compress/huf_compress.c +++ b/lib/compress/huf_compress.c @@ -334,8 +334,8 @@ size_t HUF_buildCTable_wksp (HUF_CElt* tree, const unsigned* count, U32 maxSymbo int lowS, lowN; U16 nodeNb = STARTNODE; U32 nodeRoot; - rankPos* rank = (rankPos *)(huffNode + 1); - DEBUGLOG(3, "workspace %p huffnode0 %p huffnode %p rank %p workspaceend %p", workSpace, huffNode0, huffNode, rank, ((BYTE*)workSpace) + wkspSize); + rankPos* rank = (rankPos *)(huffNode0 + HUF_CTABLE_WORKSPACE_SIZE / sizeof(nodeElt*)); + /* safety checks */ if (((size_t)workSpace & 3) != 0) return ERROR(GENERIC); /* must be aligned on 4-bytes boundaries */ if (wkspSize < sizeof(huffNodeTable) + sizeof(rankPos) * 32) return ERROR(workSpace_tooSmall); @@ -404,7 +404,6 @@ size_t HUF_buildCTable_wksp (HUF_CElt* tree, const unsigned* count, U32 maxSymbo size_t HUF_buildCTable (HUF_CElt* tree, const unsigned* count, unsigned maxSymbolValue, unsigned maxNbBits) { U32 workspace[HUF_WORKSPACE_SIZE_U32]; - DEBUGLOG(3, "!!!"); return HUF_buildCTable_wksp(tree, count, maxSymbolValue, maxNbBits, workspace, sizeof(workspace)); } @@ -672,7 +671,7 @@ HUF_compress_internal (void* dst, size_t dstSize, huffLog = HUF_optimalTableLog(huffLog, srcSize, maxSymbolValue); { size_t const maxBits = HUF_buildCTable_wksp(table->CTable, table->count, maxSymbolValue, huffLog, - table->nodeTable, sizeof(table->nodeTable)); + table->nodeTable, ((BYTE*)workSpace) + wkspSize - (BYTE*)table->nodeTable); CHECK_F(maxBits); huffLog = (U32)maxBits; /* Zero unused symbols in CTable, so we can check it for validity */