all: allmost examples manual contrib
.PHONY: allmost
-allmost: allzstd
- $(MAKE) -C $(ZWRAPDIR) all
+allmost: allzstd zlibwrapper
#skip zwrapper, can't build that on alternate architectures without the proper zlib installed
.PHONY: allzstd
$(MAKE) -C $(PRGDIR) zstd32
$(MAKE) -C $(TESTDIR) all32
-.PHONY: lib lib-release
-lib lib-release:
+.PHONY: lib lib-release libzstd.a
+lib : libzstd.a
+lib lib-release libzstd.a:
@$(MAKE) -C $(ZSTDDIR) $@
.PHONY: zstd zstd-release
cp $(PRGDIR)/zstd$(EXT) ./zstdmt$(EXT)
.PHONY: zlibwrapper
-zlibwrapper:
- $(MAKE) -C $(ZWRAPDIR) test
+zlibwrapper: libzstd.a
+ $(MAKE) -C $(ZWRAPDIR) all
.PHONY: test
test: MOREFLAGS += -g -DDEBUGLEVEL=1 -Werror
staticAnalyze:
$(CC) -v
- CPPFLAGS=-g scan-build --status-bugs -v $(MAKE) all
+ CC=$(CC) CPPFLAGS=-g scan-build --status-bugs -v $(MAKE) all
endif
do {
testmem = (BYTE*)malloc((size_t)requiredMem);
requiredMem -= step;
- } while (!testmem);
+ } while (!testmem && requiredMem); /* do not allocate zero bytes */
free(testmem);
- return (size_t)(requiredMem);
+ return (size_t)(requiredMem+1); /* avoid zero */
}
static void BMK_benchCLevel(void* srcBuffer, size_t benchedSize,
if ((U64)benchedSize > totalSizeToLoad) benchedSize = (size_t)totalSizeToLoad;
if (benchedSize < totalSizeToLoad)
DISPLAY("Not enough memory; testing %u MB only...\n", (U32)(benchedSize >> 20));
- srcBuffer = malloc(benchedSize);
+ srcBuffer = malloc(benchedSize + !benchedSize);
if (!srcBuffer) EXM_THROW(12, "not enough memory");
/* Load input buffer */
return NULL;
/* allocate gzFile structure to return */
- state = (gz_statep)(gz_state*)malloc(sizeof(gz_state));
+ state.state = (gz_state*)malloc(sizeof(gz_state));
if (state.state == NULL)
return NULL;
state.state->size = 0; /* no buffers allocated yet */
gz_reset(state);
/* return stream */
- return (gzFile)state.file;
+ return state.file;
}
/* -- see zlib.h -- */
* For conditions of distribution and use, see http://www.zlib.net/zlib_license.html
*/
+#include <assert.h>
+
#include "gzguts.h"
/* Local functions */
z_streamp strm = &(state.state->strm);
/* allocate input buffer (double size for gzprintf) */
- state.state->in = (unsigned char *)malloc(state.state->want << 1);
+ state.state->in = (unsigned char*)malloc(state.state->want << 1);
if (state.state->in == NULL) {
gz_error(state, Z_MEM_ERROR, "out of memory");
return -1;
/* only need output buffer and deflate state if compressing */
if (!state.state->direct) {
/* allocate output buffer */
- state.state->out = (unsigned char *)malloc(state.state->want);
+ state.state->out = (unsigned char*)malloc(state.state->want);
if (state.state->out == NULL) {
free(state.state->in);
gz_error(state, Z_MEM_ERROR, "out of memory");
gz_statep state;
/* get internal structure */
+ assert(size != 0);
if (file == NULL)
return 0;
state = (gz_statep)file;
/* compute bytes to read -- error on overflow */
len = nitems * size;
- if (size && len / size != nitems) {
+ if (size && (len / size != nitems)) {
gz_error(state, Z_STREAM_ERROR, "request does not fit in a size_t");
return 0;
}