diff options
author | Yann Collet <Cyan4973@users.noreply.github.com> | 2018-04-24 18:25:57 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-24 18:25:57 (GMT) |
commit | 8c6ca6283d00d1882cfa18e6477b51c9d7e74ed4 (patch) | |
tree | c67b0e623482e4d22786ded1bdabd82c01e9bbf6 | |
parent | 092cb775974218df96e8243957c182d685c81278 (diff) | |
parent | 44bff3fd3b4fc6280cad3f8b930d6a404e3bb236 (diff) | |
download | lz4-8c6ca6283d00d1882cfa18e6477b51c9d7e74ed4.zip lz4-8c6ca6283d00d1882cfa18e6477b51c9d7e74ed4.tar.gz lz4-8c6ca6283d00d1882cfa18e6477b51c9d7e74ed4.tar.bz2 |
Merge pull request #511 from lz4/decFast
Fixed performance issue with LZ4_decompress_fast()
-rw-r--r-- | lib/Makefile | 1 | ||||
-rw-r--r-- | lib/lz4.c | 8 | ||||
-rw-r--r-- | programs/util.h | 3 | ||||
-rw-r--r-- | tests/Makefile | 3 |
4 files changed, 10 insertions, 5 deletions
diff --git a/lib/Makefile b/lib/Makefile index d6a8625..bb45582 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -186,6 +186,7 @@ uninstall: @$(RM) $(DESTDIR)$(INCLUDEDIR)/lz4.h @$(RM) $(DESTDIR)$(INCLUDEDIR)/lz4hc.h @$(RM) $(DESTDIR)$(INCLUDEDIR)/lz4frame.h + @$(RM) $(DESTDIR)$(INCLUDEDIR)/lz4frame_static.h @echo lz4 libraries successfully uninstalled endif @@ -1542,9 +1542,11 @@ LZ4_FORCE_INLINE int LZ4_decompress_generic( * this shortcut was tested on x86 and x64, where it improves decoding speed. * it has not yet been benchmarked on ARM, Power, mips, etc. * NOTE: The loop begins with a read, so we must have one byte left at the end. */ - if (((ip + 14 /*maxLL*/ + 2 /*offset*/ < iend) - & (op + 14 /*maxLL*/ + 18 /*maxML*/ <= oend)) - & ((token < (15<<ML_BITS)) & ((token & ML_MASK) != 15)) ) { + if (endOnInput + && ((ip + 14 /*maxLL*/ + 2 /*offset*/ < iend) + & (op + 14 /*maxLL*/ + 18 /*maxML*/ <= oend) + & (token < (15<<ML_BITS)) + & ((token & ML_MASK) != 15) ) ) { size_t const ll = token >> ML_BITS; size_t const off = LZ4_readLE16(ip+ll); const BYTE* const matchPtr = op + ll - off; /* pointer underflow risk ? */ diff --git a/programs/util.h b/programs/util.h index ff25106..ef6ca77 100644 --- a/programs/util.h +++ b/programs/util.h @@ -30,8 +30,9 @@ extern "C" { * Dependencies ******************************************/ #include "platform.h" /* PLATFORM_POSIX_VERSION */ -#include <stdlib.h> /* malloc */ #include <stddef.h> /* size_t, ptrdiff_t */ +#include <stdlib.h> /* malloc */ +#include <string.h> /* strlen, strncpy */ #include <stdio.h> /* fprintf */ #include <sys/types.h> /* stat, utime */ #include <sys/stat.h> /* stat */ diff --git a/tests/Makefile b/tests/Makefile index 2b93c9f..d4847b1 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -80,7 +80,8 @@ lz4c32: # create a 32-bits version for 32/64 interop tests %.o : $(LZ4DIR)/%.c $(LZ4DIR)/%.h $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ -fullbench : lz4.o lz4hc.o lz4frame.o xxhash.o fullbench.c +fullbench : DEBUGLEVEL=0 +fullbench : lz4.o lz4hc.o lz4frame.o xxhash.o fullbench.c $(CC) $(FLAGS) $^ -o $@$(EXT) $(LZ4DIR)/liblz4.a: |