]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Fixed #80 (reported by @luben)
authorYann Collet <yann.collet.73@gmail.com>
Mon, 30 Nov 2015 10:53:11 +0000 (11:53 +0100)
committerYann Collet <yann.collet.73@gmail.com>
Mon, 30 Nov 2015 10:53:11 +0000 (11:53 +0100)
Added : tests for ZSTD_LEGACY=disable build mode
extended ZSTD_LEGACY=disable to dll build

.travis.yml
NEWS
lib/Makefile
programs/Makefile
programs/fileio.c

index 83a6f23a6fcf230fa1b09969f12f0130179aae2d..846f1217588ef3022596aba15845085fe56b0d23 100644 (file)
@@ -16,6 +16,7 @@ env:
   - ZSTD_TRAVIS_CI_ENV=armtest  
   - ZSTD_TRAVIS_CI_ENV=test  
   - ZSTD_TRAVIS_CI_ENV="-C programs test32"  
+  - ZSTD_TRAVIS_CI_ENV="-C programs test-zstd_nolegacy"
   - ZSTD_TRAVIS_CI_ENV=usan
   - ZSTD_TRAVIS_CI_ENV=asan
   - ZSTD_TRAVIS_CI_ENV="-C programs valgrindTest"  
diff --git a/NEWS b/NEWS
index 75c9b87e3a9199639de05d0a5db96cc747fae0d5..30d64424882c8f193ab143487813b48f68429ad8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
+v0.4.1
+Fixed : ZSTD_LEGACY=disable build mode (reported by Luben)
+
 v0.4.0
-Command line utility is now compatible with high compression levels 
+Command line utility compatible with high compression levels 
 Removed zstdhc => merged into zstd
 Added : ZBUFF API (see zstd_buffered.h)
 Rolling buffer support
index 3e34d896a949dfed018402b18e4bbd66b17a9959..eedd3d95bb2a3bc399611bdd6cb0c5eceb9647da 100644 (file)
@@ -40,7 +40,7 @@ VERSION?= $(LIBVER)
 
 DESTDIR?=
 PREFIX ?= /usr/local
-CPPFLAGS= -I. -I./legacy -DZSTD_LEGACY_SUPPORT=1
+CPPFLAGS= -I.
 CFLAGS ?= -O3
 CFLAGS += -std=c99 -Wall -Wextra -Wundef -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes
 FLAGS   = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MOREFLAGS)
@@ -48,6 +48,16 @@ FLAGS   = $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $(MOREFLAGS)
 LIBDIR ?= $(PREFIX)/lib
 INCLUDEDIR=$(PREFIX)/include
 
+ZSTD_FILES := zstd_compress.c zstd_decompress.c fse.c huff0.c
+ZSTD_LEGACY:= legacy/zstd_v01.c legacy/zstd_v02.c legacy/zstd_v03.c
+
+ifeq ($(ZSTD_LEGACY),disable)
+CPPFLAGS  += -DZSTD_LEGACY_SUPPORT=0
+else
+ZSTD_FILES+= $(ZSTD_LEGACY)
+CPPFLAGS  += -I./legacy -DZSTD_LEGACY_SUPPORT=1
+endif
+
 
 # OS X linker doesn't support -soname, and use different extension
 # see : https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html
@@ -70,8 +80,7 @@ default: clean libzstd
 
 all: clean libzstd
 
-libzstd: zstd_compress.c zstd_decompress.c huff0.c fse.c \
-         legacy/zstd_v01.c legacy/zstd_v02.c legacy/zstd_v03.c
+libzstd: $(ZSTD_FILES)
        @echo compiling static library
        @$(CC) $(FLAGS) -c $^
        @$(AR) rcs libzstd.a *.o
index 9d73cb95d08e506fe930908781a9e081ae9d0741..1ff9c6fa29d2cbfcd0839d64ce6aff7ff4ff3111 100644 (file)
@@ -80,6 +80,9 @@ zstd32: $(ZSTD_FILES) $(ZSTDDIR)/zstd_buffered.c \
         xxhash.c bench.c fileio.c zstdcli.c $(ZSTD_FILEIO_LEGACY)
        $(CC) -m32 $(FLAGS) $^ -o $@$(EXT)
 
+zstd_nolegacy :
+       $(MAKE) zstd ZSTD_LEGACY=disable
+
 fullbench  : $(ZSTD_FILES) \
         datagen.c fullbench.c
        $(CC)      $(FLAGS) $^ -o $@$(EXT)
@@ -230,6 +233,9 @@ test-zstd: zstd zstd-playTests
 test-zstd32: ZSTD = ./zstd32
 test-zstd32: zstd32 zstd-playTests
 
+test-zstd_nolegacy: ZSTD = ./zstd
+test-zstd_nolegacy: zstd_nolegacy zstd-playTests
+
 test-fullbench: fullbench datagen
        ./fullbench -i1
        ./fullbench -i1 -P0
index e84d6332ce46bcb5c411a27619ace9f88d10a7e3..27c72c574693fed466d291b64d3205f34f353b9f 100644 (file)
@@ -382,21 +382,17 @@ unsigned long long FIO_decompressFilename(const char* output_filename, const cha
     /* for each frame */
     for ( ; ; )
     {
-        toRead = 0;
-
+        size_t sizeCheck;
+        /* check magic number -> version */
+        toRead = 4;
+        sizeCheck = fread(inBuff, (size_t)1, toRead, finput);
+        if (sizeCheck==0) break;   /* no more input */
+        if (sizeCheck != toRead) EXM_THROW(31, "Read error : cannot read header");
 #if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT==1)
+        if (ZSTD_isLegacy(MEM_readLE32(inBuff)))
         {
-            size_t sizeCheck;
-            /* check magic number -> version */
-            toRead = 4;
-            sizeCheck = fread(inBuff, (size_t)1, toRead, finput);
-            if (sizeCheck==0) break;   /* no more input */
-            if (sizeCheck != toRead) EXM_THROW(31, "Read error : cannot read header");
-            if (ZSTD_isLegacy(MEM_readLE32(inBuff)))
-            {
-                filesize += FIO_decompressLegacyFrame(foutput, finput, MEM_readLE32(inBuff));
-                continue;
-            }
+            filesize += FIO_decompressLegacyFrame(foutput, finput, MEM_readLE32(inBuff));
+            continue;
         }
 #endif   /* ZSTD_LEGACY_SUPPORT */