diff --git a/Makefile b/Makefile index a5e6cf8b0..5cc83da78 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,7 @@ # ################################################################ # Version number -export VERSION := 0.2.0 +export VERSION := 0.2.2 PRGDIR = programs ZSTDDIR = lib diff --git a/NEWS b/NEWS index b09b624f5..8388dfceb 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,9 @@ +v0.2.2 +Fix : Visual Studio 2013 & 2015 release compilation, by Christophe Chevalier + +v0.2.2 +Fix : Read errors, advanced fuzzer tests, by Hanno Böck + v0.2.0 **Breaking format change** Faster decompression speed diff --git a/lib/Makefile b/lib/Makefile index e5afb9742..75d44c4a5 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -32,11 +32,11 @@ # ################################################################ # Version numbers -VERSION?= 0.1.2 LIBVER_MAJOR=`sed -n '/define ZSTD_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < zstd.h` LIBVER_MINOR=`sed -n '/define ZSTD_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < zstd.h` LIBVER_PATCH=`sed -n '/define ZSTD_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < zstd.h` LIBVER = $(LIBVER_MAJOR).$(LIBVER_MINOR).$(LIBVER_PATCH) +VERSION?= $(LIBVER) DESTDIR?= PREFIX ?= /usr/local diff --git a/lib/huff0.c b/lib/huff0.c index 74c7a7be0..72b12bdfb 100644 --- a/lib/huff0.c +++ b/lib/huff0.c @@ -1017,24 +1017,29 @@ size_t HUF_readDTableX4 (U32* DTable, const void* src, size_t srcSize) rankStart[0] = 0; /* forget 0w symbols; this is beginning of weight(1) */ } - /* Build rankVal */ + /* Build rankVal */ { const U32 minBits = tableLog+1 - maxW; U32 nextRankVal = 0; U32 w, consumed; const int rescale = (memLog-tableLog) - 1; /* tableLog <= memLog */ + U32* rankVal0 = rankVal[0]; for (w=1; w<=maxW; w++) { U32 current = nextRankVal; nextRankVal += rankStats[w] << (w+rescale); - rankVal[0][w] = current; + rankVal0[w] = current; + } + for (consumed = minBits; consumed <= memLog - minBits; consumed++) + { + U32* rankValPtr = rankVal[consumed]; + for (w = 1; w <= maxW; w++) + { + rankValPtr[w] = rankVal0[w] >> consumed; + } } - for (consumed=minBits; consumed <= memLog-minBits; consumed++) - for (w=1; w<=maxW; w++) - rankVal[consumed][w] = rankVal[0][w] >> consumed; } - HUF_fillDTableX4(dt, memLog, sortedSymbol, sizeOfSort, rankStart0, rankVal, maxW, @@ -1384,21 +1389,27 @@ size_t HUF_readDTableX6 (U32* DTable, const void* src, size_t srcSize) rankStart[0] = 0; /* forget 0w symbols; this is beginning of weight(1) */ } - /* Build rankVal */ + /* Build rankVal */ { const U32 minBits = tableLog+1 - maxW; U32 nextRankVal = 0; U32 w, consumed; const int rescale = (memLog-tableLog) - 1; /* tableLog <= memLog */ + U32* rankVal0 = rankVal[0]; for (w=1; w<=maxW; w++) { U32 current = nextRankVal; nextRankVal += rankStats[w] << (w+rescale); - rankVal[0][w] = current; + rankVal0[w] = current; + } + for (consumed = minBits; consumed <= memLog - minBits; consumed++) + { + U32* rankValPtr = rankVal[consumed]; + for (w = 1; w <= maxW; w++) + { + rankValPtr[w] = rankVal0[w] >> consumed; + } } - for (consumed=minBits; consumed <= memLog-minBits; consumed++) - for (w=1; w<=maxW; w++) - rankVal[consumed][w] = rankVal[0][w] >> consumed; } diff --git a/lib/zstd.h b/lib/zstd.h index 3978776ce..cba2cae26 100644 --- a/lib/zstd.h +++ b/lib/zstd.h @@ -47,7 +47,7 @@ extern "C" { ***************************************/ #define ZSTD_VERSION_MAJOR 0 /* for breaking interface changes */ #define ZSTD_VERSION_MINOR 2 /* for new (non-breaking) interface capabilities */ -#define ZSTD_VERSION_RELEASE 0 /* for tweaks, bug-fixes, or development */ +#define ZSTD_VERSION_RELEASE 2 /* for tweaks, bug-fixes, or development */ #define ZSTD_VERSION_NUMBER (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE) unsigned ZSTD_versionNumber (void);