summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | fix #935Yann Collet2020-11-072-3/+4
|/ | | | | | | minor: identical declaration and prototypes of `LZ4HC_compress_optimal()` also : very minor optimization of `LZ4_memcpy_using_offset()`
* LZ4F_decompress requires a valid dctx stateYann Collet2020-11-073-7/+10
| | | | | This is now explicitly documented and asserted. fix #927
* Merge pull request #936 from lz4/alignTestYann Collet2020-11-075-108/+77
|\ | | | | More alignment tests
| * static state sizeYann Collet2020-11-072-4/+4
| | | | | | | | for better inter-version compatibility
| * re-enable alignment test on all targetsYann Collet2020-11-073-17/+10
| |
| * unified internal state declarationYann Collet2020-11-072-74/+41
| | | | | | | | align on `void*` instead : there is no `long long` inside the structure
| * document LZ4_ALIGN_TESTYann Collet2020-11-061-0/+3
| |
| * unified alignment testYann Collet2020-11-062-27/+30
| | | | | | | | across lz4.c and lz4hc.c
| * preserver alignment test on Visual Studio x64Yann Collet2020-10-021-16/+19
| | | | | | | | | | this it works fine in this environment (only x86 is suspicious)
* | Merge pull request #930 from remittor-pr/fix_msvcYann Collet2020-10-312-38/+38
|\ \ | | | | | | Fix: The "inline" specifier do not use for LZ4_wildCopy8 and LZ4_wildCopy32
| * | Replace "static" to "LZ4_FORCE_INLINE" for small functionsremittor2020-10-072-20/+20
| | | | | | | | | | | | 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".
* | [lz4hc] Made function LZ4HC_encodeSequence a human readableremittor2020-10-031-23/+30
|/
* add LZ4F_decompress() tests with (NULL,0) input and outputYann Collet2020-10-021-32/+52
| | | | fix one (rare & complex) issue discovered by this test
* make scan-build accept assert()Yann Collet2020-10-011-6/+9
|
* fix bad init scenarioYann Collet2020-10-011-3/+5
|
* added memcpy() related SA warning fixesYann Collet2020-10-011-8/+14
| | | | memcpy() on NULL is UB, even if length is 0.
* fix conversion warningYann Collet2020-09-301-5/+5
|
* Merge branch 'dev' into safixesYann Collet2020-09-301-1/+1
|\
| * bump version numberYann Collet2020-09-291-1/+1
| | | | | | | | to v1.9.3
* | fix minor static analyzer warningsYann Collet2020-09-303-37/+39
|/ | | | | detected by scan-build, cppcheck and advanved compilation flags fix #786
* Merge pull request #923 from lz4/fix784Yann Collet2020-09-282-42/+105
|\ | | | | 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-282-21/+40
| | | | | | | | must respect MFLIMIT distance from oend
| * fix incorrect countingYann Collet2020-09-281-2/+3
| | | | | | | | after truncation of last sequence
| * fix efficiency of LZ4_compress_HC_destSize()Yann Collet2020-09-282-25/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
|/
* comment bug on older versions of ZSTD_compress_destSize()Yann Collet2020-09-181-1/+12
| | | | following investigation in #859
* fixed lz4frame with blocks of size 1Yann Collet2020-09-172-22/+23
| | | | properly track history
* added the actual code changeYann Collet2020-09-171-6/+53
|
* fix #783Yann Collet2020-08-272-28/+45
| | | | | | | | | | | | | | | | | 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-272-61/+71
|\
| * added documentation about LZ4_FORCE_SW_BITCOUNTYann Collet2020-08-262-8/+33
| | | | | | | | | | 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.
* | | Merge branch 'dev' into extraInputYann Collet2020-08-183-9/+12
|\ \ \ | |/ /
| * | Merge pull request #897 from lz4/lz4wlibYann Collet2020-08-182-6/+7
| |\ \ | | | | | | | | added target lz4-wlib
| | * | added target lz4-wlibYann Collet2020-08-112-6/+7
| | |/ | | | | | | | | | | | | | | | | | | | | | variant of lz4 linking to liblz4 dynamic library requires the dynamic library to expose static-only symbols (experimental API) Example for #888
| * | Clarifies and fix EndMarkYann Collet2020-08-131-3/+5
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EndMark, the 4-bytes value indicating the end of frame, must be `0x00000000`. Previously, it was just mentioned as a `0-size` block. But such definition could encompass uncompressed blocks of size 0, with a header of value `0x80000000`. But the intention was to also support uncompressed empty blocks. They could be used as a keep-alive signal. Note that compressed empty blocks are already supported, it's just that they have a size 1 instead of 0 (for the `0` token). Unfortunately, the decoder implementation was also wrong, and would also interpret a `0x80000000` block header as an endMark. This issue evaded detection so far simply because this situation never happens, as LZ4Frame always issues a clean 0x00000000 value as a endMark. It also does not flush empty blocks. This is fixed in this PR. The decoder can now deal with empty uncompressed blocks, and do not confuse them with EndMark. The specification is also clarified. Finally, FrameTest is updated to randomly insert empty blocks during fuzzing.
* | fix issue #783 (#862)BellaXlp2020-08-121-1/+1
|/ | | * fix issue #783
* Merge branch 'fix832' into devYann Collet2020-08-111-2/+2
|\
| * fixed test of gnu c versionYann Collet2020-08-111-2/+2
| |
* | Merge pull request #896 from lz4/fix832Yann Collet2020-08-101-7/+6
|\ \ | |/ | | fix #832
| * fix #832Yann Collet2020-08-101-7/+6
| | | | | | | | does no longer rely on default 0-interpretation when __GNUC__ is not defined
* | Merge pull request #895 from lz4/hugefastYann Collet2020-08-102-6/+16
|\ \ | |/ |/| Fix #876