summaryrefslogtreecommitdiffstats
path: root/programs/bench.c
diff options
context:
space:
mode:
authorYann Collet <yann.collet.73@gmail.com>2015-03-15 00:42:27 (GMT)
committerYann Collet <yann.collet.73@gmail.com>2015-03-15 00:42:27 (GMT)
commit45b0642bf54718d2b57dd61cb606b154afc0ab26 (patch)
treef5321a260b8491e9f233166402b92f8c4ff68fb0 /programs/bench.c
parenta18fb4392a9f249528a4071a5583e17668d92872 (diff)
downloadlz4-45b0642bf54718d2b57dd61cb606b154afc0ab26.zip
lz4-45b0642bf54718d2b57dd61cb606b154afc0ab26.tar.gz
lz4-45b0642bf54718d2b57dd61cb606b154afc0ab26.tar.bz2
scan-build tests
Diffstat (limited to 'programs/bench.c')
-rw-r--r--programs/bench.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/programs/bench.c b/programs/bench.c
index b632314..f0a27ef 100644
--- a/programs/bench.c
+++ b/programs/bench.c
@@ -207,12 +207,17 @@ static size_t BMK_findMaxMem(U64 requiredMem)
while (!testmem)
{
- requiredMem -= step;
+ if (requiredMem > step) requiredMem -= step;
+ else requiredMem >>= 1;
testmem = (BYTE*) malloc ((size_t)requiredMem);
}
-
free (testmem);
- return (size_t) (requiredMem - step);
+
+ /* keep some space available */
+ if (requiredMem > step) requiredMem -= step;
+ else requiredMem >>= 1;
+
+ return (size_t)requiredMem;
}
@@ -287,7 +292,9 @@ int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel)
/* Memory allocation & restrictions */
inFileSize = BMK_GetFileSize(inFileName);
+ if (inFileSize==0) { DISPLAY( "file is empty\n"); return 11; }
benchedSize = (size_t) BMK_findMaxMem(inFileSize * 2) / 2;
+ if (benchedSize==0) { DISPLAY( "not enough memory\n"); return 11; }
if ((U64)benchedSize > inFileSize) benchedSize = (size_t)inFileSize;
if (benchedSize < inFileSize)
{
@@ -296,11 +303,11 @@ int BMK_benchFiles(const char** fileNamesTable, int nbFiles, int cLevel)
/* Alloc */
chunkP = (struct chunkParameters*) malloc(((benchedSize / (size_t)chunkSize)+1) * sizeof(struct chunkParameters));
- orig_buff = (char*)malloc((size_t )benchedSize);
+ orig_buff = (char*)malloc((size_t)benchedSize);
nbChunks = (int) ((int)benchedSize / chunkSize) + 1;
maxCompressedChunkSize = LZ4_compressBound(chunkSize);
compressedBuffSize = nbChunks * maxCompressedChunkSize;
- compressedBuffer = (char*)malloc((size_t )compressedBuffSize);
+ compressedBuffer = (char*)malloc((size_t)compressedBuffSize);
if (!orig_buff || !compressedBuffer)