summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Collet <yann.collet.73@gmail.com>2015-04-14 17:51:36 (GMT)
committerYann Collet <yann.collet.73@gmail.com>2015-04-14 17:51:36 (GMT)
commit05a46fc59ab0934389055f97b7be5b5a6da2824d (patch)
treea38fee9efa394b674986bbd031795eac37fc2120
parent348f5099e42c23393ec9c8e6b403f4bca99bbb41 (diff)
downloadlz4-05a46fc59ab0934389055f97b7be5b5a6da2824d.zip
lz4-05a46fc59ab0934389055f97b7be5b5a6da2824d.tar.gz
lz4-05a46fc59ab0934389055f97b7be5b5a6da2824d.tar.bz2
Changes LZ4F_compressBound() definition using NULL prefsPtr to cover worst case instead of default.
-rw-r--r--lib/lz4frame.c3
-rw-r--r--lib/lz4frame.h6
-rw-r--r--programs/lz4io.c2
3 files changed, 6 insertions, 5 deletions
diff --git a/lib/lz4frame.c b/lib/lz4frame.c
index 31cf9a5..8d4c029 100644
--- a/lib/lz4frame.c
+++ b/lib/lz4frame.c
@@ -472,12 +472,13 @@ size_t LZ4F_compressBegin(LZ4F_compressionContext_t compressionContext, void* ds
/* LZ4F_compressBound() : gives the size of Dst buffer given a srcSize to handle worst case situations.
* The LZ4F_frameInfo_t structure is optional :
-* you can provide NULL as argument, all preferences will then be set to default.
+* you can provide NULL as argument, preferences will then be set to cover worst case situations.
* */
size_t LZ4F_compressBound(size_t srcSize, const LZ4F_preferences_t* preferencesPtr)
{
LZ4F_preferences_t prefsNull;
memset(&prefsNull, 0, sizeof(prefsNull));
+ prefsNull.frameInfo.contentChecksumFlag = contentChecksumEnabled; /* worst case */
{
const LZ4F_preferences_t* prefsPtr = (preferencesPtr==NULL) ? &prefsNull : preferencesPtr;
blockSizeID_t bid = prefsPtr->frameInfo.blockSizeID;
diff --git a/lib/lz4frame.h b/lib/lz4frame.h
index e5435cd..f22ef00 100644
--- a/lib/lz4frame.h
+++ b/lib/lz4frame.h
@@ -141,9 +141,9 @@ size_t LZ4F_compressBegin(LZ4F_compressionContext_t cctx, void* dstBuffer, size_
size_t LZ4F_compressBound(size_t srcSize, const LZ4F_preferences_t* prefsPtr);
/* LZ4F_compressBound() :
* Provides the minimum size of Dst buffer given srcSize to handle worst case situations.
- * prefsPtr is optional : you can provide NULL as argument, all preferences will then be set to default.
- * Note that different preferences will produce different results.
- * This function doesn't include frame termination cost (4 bytes, or 8 is frame checksum is enabled)
+ * Different preferences can produce different results.
+ * prefsPtr is optional : you can provide NULL as argument, all preferences will then be set to cover worst case.
+ * This function includes frame termination cost (4 bytes, or 8 is frame checksum is enabled)
*/
size_t LZ4F_compressUpdate(LZ4F_compressionContext_t cctx, void* dstBuffer, size_t dstMaxSize, const void* srcBuffer, size_t srcSize, const LZ4F_compressOptions_t* cOptPtr);
diff --git a/programs/lz4io.c b/programs/lz4io.c
index 9287979..db34747 100644
--- a/programs/lz4io.c
+++ b/programs/lz4io.c
@@ -421,7 +421,7 @@ static cRess_t LZ4IO_createCResources(void)
/* Allocate Memory */
ress.srcBuffer = malloc(blockSize);
ress.srcBufferSize = blockSize;
- ress.dstBufferSize = LZ4F_compressBound(blockSize, NULL); /* risk : real prefs may cost more */
+ ress.dstBufferSize = LZ4F_compressBound(blockSize, NULL); /* cover worst case */
ress.dstBuffer = malloc(ress.dstBufferSize);
if (!ress.srcBuffer || !ress.dstBuffer) EXM_THROW(31, "Allocation error : not enough memory");