diff options
author | Yann Collet <Cyan4973@users.noreply.github.com> | 2022-09-08 14:28:54 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-08 14:28:54 (GMT) |
commit | 72997c5a915ccf80459cd023c6322239c308c025 (patch) | |
tree | 90d9edc9490771d31d39d256b7dd1f6dbc1a8c18 /lib/lz4frame.c | |
parent | 4de3e98ad206f6afc85bbb4268f6c3a64fc2d487 (diff) | |
parent | 28228258450a0766697ead632c8cce0c85ed6b88 (diff) | |
download | lz4-72997c5a915ccf80459cd023c6322239c308c025.zip lz4-72997c5a915ccf80459cd023c6322239c308c025.tar.gz lz4-72997c5a915ccf80459cd023c6322239c308c025.tar.bz2 |
Merge pull request #1158 from lz4/fix1157
allocation optimization for lz4frame compression
Diffstat (limited to 'lib/lz4frame.c')
-rw-r--r-- | lib/lz4frame.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/lz4frame.c b/lib/lz4frame.c index 174f9ae..b4caff4 100644 --- a/lib/lz4frame.c +++ b/lib/lz4frame.c @@ -264,7 +264,7 @@ typedef struct LZ4F_cctx_s LZ4F_CustomMem cmem; LZ4F_preferences_t prefs; U32 version; - U32 cStage; + U32 cStage; /* 0 : compression uninitialized ; 1 : initialized, can compress */ const LZ4F_CDict* cdict; size_t maxBlockSize; size_t maxBufferSize; @@ -732,7 +732,7 @@ size_t LZ4F_compressBegin_usingCDict(LZ4F_cctx* cctxPtr, if (cctxPtr->maxBufferSize < requiredBuffSize) { cctxPtr->maxBufferSize = 0; LZ4F_free(cctxPtr->tmpBuff, cctxPtr->cmem); - cctxPtr->tmpBuff = (BYTE*)LZ4F_calloc(requiredBuffSize, cctxPtr->cmem); + cctxPtr->tmpBuff = (BYTE*)LZ4F_malloc(requiredBuffSize, cctxPtr->cmem); RETURN_ERROR_IF(cctxPtr->tmpBuff == NULL, allocation_failed); cctxPtr->maxBufferSize = requiredBuffSize; } } @@ -1176,7 +1176,6 @@ size_t LZ4F_compressEnd(LZ4F_cctx* cctxPtr, } cctxPtr->cStage = 0; /* state is now re-usable (with identical preferences) */ - cctxPtr->maxBufferSize = 0; /* reuse HC context */ if (cctxPtr->prefs.frameInfo.contentSize) { if (cctxPtr->prefs.frameInfo.contentSize != cctxPtr->totalInSize) @@ -1722,10 +1721,10 @@ size_t LZ4F_decompress(LZ4F_dctx* dctx, /* history management (linked blocks only)*/ if (dctx->frameInfo.blockMode == LZ4F_blockLinked) { LZ4F_updateDict(dctx, dstPtr, sizeToCopy, dstStart, 0); - } } - - srcPtr += sizeToCopy; - dstPtr += sizeToCopy; + } + srcPtr += sizeToCopy; + dstPtr += sizeToCopy; + } if (sizeToCopy == dctx->tmpInTarget) { /* all done */ if (dctx->frameInfo.blockChecksumFlag) { dctx->tmpInSize = 0; |