summaryrefslogtreecommitdiffstats
path: root/lib/lz4.c
Commit message (Collapse)AuthorAgeFilesLines
* fix some typos (work by Andrea Gelmini)Thomas Waldmann2021-01-071-1/+1
|
* fix minor header dateYann Collet2020-12-011-1/+1
|
* better visual conformanceYann Collet2020-11-151-4/+3
| | | | | | only include <intrin.h> on vs2005+ (#947) remove some useless #pragma fix a few minor Visual warnings
* restrict BitScanForward() to VS2005+Yann Collet2020-11-141-1/+1
| | | | suggested by @aqrit in #947
* changed LZ4_calloc() to a 2-arguments signatureYann Collet2020-11-091-2/+2
| | | | | | to remain similar to stdlib's calloc(). Updated test to use c++ compiler for stricter signature check.
* Merge branch 'dev' into customMemYann Collet2020-11-091-2/+2
|\
| * Merge pull request #944 from lz4/fix874Yann Collet2020-11-091-1/+1
| |\ | | | | | | fix #874
| | * fix #874Yann Collet2020-11-081-1/+1
| | | | | | | | | | | | | | | | | | | | | coverity reported a warning regarding a memcpy() overwrite. This is a false positive (the memory area is large enough), but it's true that it's not trivial to determine (encompassing struct), and it's proper anyway to only memcpy() just the right amount of data.
| * | fixed remaining ubsan warningsYann Collet2020-11-091-1/+1
| |/
* | first proposal for LZ4_USER_MEMORY_FUNCTIONSYann Collet2020-11-091-4/+17
|/ | | | | | | | | makes it possible to replace at link time malloc, calloc and free by user-provided functions which must be named LZ4_malloc(), LZ4_calloc() and LZ4_free(). answer #937
* fix minor UBsYann Collet2020-11-081-1/+3
| | | | | - check alignment before casting a pointer - saveDict : don't memmove() on NULL dst
* Merge pull request #941 from lz4/revertinlineYann Collet2020-11-081-18/+18
|\ | | | | Revert "Replace "static" to "LZ4_FORCE_INLINE" for small functions"
| * Revert "Replace "static" to "LZ4_FORCE_INLINE" for small functions"Yann Collet2020-11-071-18/+18
| | | | | | | | This reverts commit 0e3933edd435c54cc2e21e38f5d4ba7bf644a24e.
* | fix #935Yann Collet2020-11-071-2/+3
|/ | | | | | | minor: identical declaration and prototypes of `LZ4HC_compress_optimal()` also : very minor optimization of `LZ4_memcpy_using_offset()`
* Merge pull request #936 from lz4/alignTestYann Collet2020-11-071-12/+19
|\ | | | | More alignment tests
| * re-enable alignment test on all targetsYann Collet2020-11-071-14/+6
| |
| * unified alignment testYann Collet2020-11-061-9/+24
| | | | | | | | across lz4.c and lz4hc.c
* | Replace "static" to "LZ4_FORCE_INLINE" for small functionsremittor2020-10-071-18/+18
| | | | | | | | The "static" specifier does not guarantee that the function will be inlined.
* | Replace define LZ4_FORCE_O2_INLINE_GCC_PPC64LE to LZ4_FORCE_INLINEremittor2020-10-071-18/+18
| | | | | | | | There is no reason to separate these two definitions!
* | Fix: The "inline" specifier do not use for LZ4_wildCopy8 and LZ4_wildCopy32remittor2020-10-061-1/+1
|/ | | | This problem was reproduced on MSVC 2015 (32-bit). Both functions were called using the operator "call".
* fix conversion warningYann Collet2020-09-301-5/+5
|
* fix minor static analyzer warningsYann Collet2020-09-301-17/+19
| | | | | detected by scan-build, cppcheck and advanved compilation flags fix #786
* Merge pull request #923 from lz4/fix784Yann Collet2020-09-281-9/+15
|\ | | | | fix efficiency of LZ4_compress_HC_destSize()
| * improved last literals run on LZ4_compress_destSizeYann Collet2020-09-281-2/+2
| | | | | | | | | | | | applying new more accurate formula from LZ4_compress_HC_destSize() also : fix some minor display issue in tests/frametest
| * ensure last match not too close to endYann Collet2020-09-281-6/+11
| | | | | | | | must respect MFLIMIT distance from oend
| * fix efficiency of LZ4_compress_HC_destSize()Yann Collet2020-09-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | LZ4_compress_HC_destSize() had a tendency to discard its last match when this match overflowed specified dstBuffer limit. The impact is generally moderate, but occasionally huge, typically when this last match is very large (such as compressing a bunch of zeroes). Issue #784 fixed for both Chain and Opt implementations. Added a unit test suggested by @remittor checking this topic.
* | Merge pull request #921 from lz4/doubleNullYann Collet2020-09-281-0/+1
|\ \ | | | | | | fix compressing into NULL
| * | fix compressing into NULLYann Collet2020-09-261-0/+1
| |/ | | | | | | | | fails properly bug discovered by oss-fuzz
* | Fix compilation with TinyCCAnton Kochkov2020-09-271-2/+2
|/
* fixed lz4frame with blocks of size 1Yann Collet2020-09-171-21/+19
| | | | properly track history
* added the actual code changeYann Collet2020-09-171-6/+53
|
* fix #783Yann Collet2020-08-271-16/+23
| | | | | | | | | | | | | | | | | LZ4_decompress_safe_partial() now also supports a scenario where nb_bytes_to_generate is <= block_decompressed_size And nb_bytes_to_read is >= block_compressed_size. Previously, the only supported scenario was nb_bytes_to_read == block_compress_size. Pay attention that, if nb_bytes_to_read is > block_compressed_size, then, necessarily, it requires that nb_bytes_to_generate is <= block_decompress_size. If both are larger, it will generate corrupted data.
* Merge branch 'dev' into extraInputYann Collet2020-08-271-55/+57
|\
| * added documentation about LZ4_FORCE_SW_BITCOUNTYann Collet2020-08-261-2/+19
| | | | | | | | | | Also : added memory-frugal software byte count for big endian 64-bit cpus. Disabled by default.
| * Merge pull request #898 from aqrit/aqrit-prefixlenYann Collet2020-08-241-45/+46
| |\ | | | | | | rejigger bit counting intrinsics
| | * silence warningaqrit2020-08-171-2/+2
| | | | | | | | | MSVC debug mode complains
| | * rejigger bit counting intrinsicsaqrit2020-08-121-45/+46
| | | | | | | | | | | | | | | Fix lz4/lz4#867 Optimize software fallback routines. Delete some faulty (and dead?) MSVC big endian code.
| * | removed LZ4_compress_fast_force()Yann Collet2020-08-221-16/+0
| |/ | | | | | | | | | | | | | | | | | | | | | | which serves no more purpose. The comment implies that the simple presence of this unused function was affecting performance, and that's the reason why it was not removed earlier. This is likely another side effect of instruction alignment. It's obviously unreliable to rely on it in this way, meaning that the impact will be different, positive of negative, with any minor code change, and any minor compiler version change, even parameter change.
* | fix issue #783 (#862)BellaXlp2020-08-121-1/+1
|/ | | * fix issue #783
* Merge pull request #895 from lz4/hugefastYann Collet2020-08-101-5/+14
|\ | | | | Fix #876
| * fix #876Yann Collet2020-08-101-5/+14
| | | | | | | | by introducing a max limit acceleration value
* | Fix Enum CastsW. Felix Handte2020-08-101-5/+5
| | | | | | | | Fixes `-Wsign-compare` issues.
* | Remove dirty Field From LZ4_stream_tW. Felix Handte2020-08-061-10/+0
| |
* | Remove Extraneous Reset in LZ4_attach_dictionary()W. Felix Handte2020-08-051-6/+0
|/ | | | | Nothing internally sets dirty anymore. The only way to get that is if you use an uninitialized context, in which case your warranty is void anyways.
* Call LZ4_memcpy() instead of memcpy()Nick Terrell2020-08-031-36/+51
| | | | | | | | | `LZ4_memcpy()` uses `__builtin_memcpy()` to ensure that clang/gcc can inline the `memcpy()` calls in freestanding mode. This is necessary for decompressing the Linux Kernel with LZ4. Without an analogous patch decompression ran at 77 MB/s, and with the patch it ran at 884 MB/s.
* Merge pull request #860 from adeason/old-style-definitionsYann Collet2020-07-291-2/+2
|\ | | | | Avoid old-style function definitions
| * Avoid old-style function definitionsAndrew Deason2020-05-071-2/+2
| | | | | | | | | | | | | | Define 0-argument functions like foo(void) instead of foo(), in order to avoid a warning with -Wold-style-definition. This makes it easier to embed lz4.c in projects that compile with -Werror -Wold-style-definition.
* | Merge pull request #863 from Devernua/reducing_stack_usage_in_t_alignmentYann Collet2020-07-161-2/+2
|\ \ | | | | | | Reducing stack usage in _t_alignment checks
| * | Reducing stack usage in _t_alignment checksAleksandr Kukuev2020-05-111-2/+2
| | |
* | | avoid computing 0 offsets from null pointersAlexander Gallego2020-07-081-2/+2
|/ / | | | | | | | | | | | | | | | | | | Similar work in the kernel: https://patchwork.kernel.org/patch/11351499/ UBsan (+clang-10) complains about doing pointer arithmetic (adding 0) to a nullpointer. This patch is tested with clang-10+ubsan