| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Suppress the following false positive warnings from MSVC:
- Disable all arithmetic overflow (C26451)
- Suppress C6385: Reading invalid data from 'compressedBuffer'.
- Add ULL suffix to unsigned 64-bits constants.
|
|
|
|
|
|
|
|
|
|
|
| |
MSVC 2022 reports the follwing false positve warnings:
lz4\tests\datagencli.c(110): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
lz4\tests\datagencli.c(134): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
lz4\tests\datagencli.c(146): warning C26451: Arithmetic overflow: Using operator '-' on a 4 byte value and then casting the result to a 8 byte value. Cast the value to the wider type before calling operator '-' to avoid overflow (io.2).
Although they're absolutely compiler's and static analyzer's bug,
it'd always be nice to use the standard library.
|
|
|
|
|
|
|
|
|
|
| |
Since rc.exe (the resource compiler) is legacy compiler, it truncates preprocessor symbol name length to 32 chars.
And it reports the following warning
lz4\build\VS2022\..\..\lib\lz4.h(314): warning RC4011: identifier truncated to 'LZ4_STATIC_LINKING_ONLY_DISABLE'
lz4\build\VS2022\..\..\lib\lz4.h(401): warning RC4011: identifier truncated to 'LZ4_STATIC_LINKING_ONLY_DISABLE'
This patch detects rc.exe and just skips long symbol.
|
|
|
|
|
|
|
|
|
|
|
|
| |
MSVC (17.3 or earlier) reports the following warning
lz4\lib\lz4.c(527): warning C6385: Reading invalid data from 'v'.
Line 527 is : LZ4_memcpy(&v[4], v, 4);
But, obviously v[0..3] is always filled with meaningful value.
Therefore, this warning report is wrong.
We must revisit this issue with future version of MSVC.
|
| |
|
| |
|
|\
| |
| | |
faster CLI decompression speed for frames compressed with -BD4 setting
|
|/
|
|
|
|
|
|
|
|
|
| |
lz4frame favors the faster prefix mode
when decompressing a frame with linked blocks.
This significantly improved CLI decompression on files compressed with -BD4 setting.
On my laptop, decompressing `enwik9` went from 0.89s to 0.52s.
This improvement is only for linked blocks.
It's more visible for small block sizes.
|
|\
| |
| | |
cmake: move `cmake_minimum_required()` before `project()`
|
| |
| |
| |
| |
| | |
cmake_minimum_required() must always be the first instruction of a CMakeLists.
project() should come after cmake_minimum_required() as soon as possible. Therefore option() are moved after project().
|
|\ \
| |/
|/| |
Update documentation in preparation for release v1.9.4
|
| | |
|
|/ |
|
|\
| |
| | |
Doc freestanding
|
| | |
|
|/ |
|
|\
| |
| | |
Add document for LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION
|
| | |
|
| | |
|
|\ \
| |/
|/| |
Add LZ4_FREESTANDING
|
| | |
|
| |
| |
| |
| |
| | |
The 'freestanding' flag indicates a capability of compiling and executing freestanding code.
Currently it requires Linux, x86_64 and (relatively newer) gcc/g++.
|
| | |
|
| |
| |
| |
| |
| | |
Since test-freestanding is able to be compiled and executed
in specific environment, we should not run it in our standard test.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Also added tests/Makefile entry "test-freestanding".
|
| |
| |
| |
| | |
LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION is enabled
|
|/ |
|
|\
| |
| | |
Introduce LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This changeset introduces new compile time switch macro LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION
which removes the following functions when it's defined.
```
// lz4.c
LZ4_createStream
LZ4_freeStream
LZ4_createStreamDecode
LZ4_freeStreamDecode
LZ4_create // legacy
// lz4hc.c
LZ4_createStreamHC(void)
LZ4_freeStreamHC
LZ4_createHC // legacy
LZ4_freeHC // legacy
```
These functions uses dynamic memory allocation functions such as malloc() and free().
It'll be useful for freestanding environment which doesn't have these allocation functions.
Since this change breaks API, this macro is only valid with lz4 as a static linked object.
|
|\ \
| | |
| | | |
Separate support of LZ4_decompress_fast*()
|
| | |
| | |
| | |
| | | |
single sumtype return value
|
| | |
| | |
| | |
| | |
| | | |
updated documentation, more assert(),
overflow detection in 32-bit mode
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
since it's now supported by decompress_unsafe().
The goal is to improve maintenability of decompress_generic()
by reducing its complexity.
|
|/ /
| |
| |
| |
| |
| |
| | |
designed to support specifically LZ4_decompress_fast*() variants.
The end goal is to offload this support from LZ4_decompress_generic
to improve its maintenance.
|
|\ \
| | |
| | | |
fix: various typos
|
|/ / |
|
|\ \
| | |
| | | |
New macro for memcpy, memmove and memset
|
| |/
| |
| |
| |
| |
| |
| |
| | |
This changeset introduces the following external macros.
- Add new macro LZ4_memset() which enables to inject external function as memset().
- Similar macro LZ4_memmove() for memmove().
- In same manner, LZ4_memcpy() also can be overriden by external macro.
|
|/
|
|
| |
hopefully answering concerns expressed in #792
|
|\
| |
| | |
Introduce ability to save cpu cycles by disabling checksum validation
|
| | |
|
| |
| |
| |
| |
| | |
note : it's unlikely to improve speed, as in most cases I/O is slower than lz4 decompression,
but maybe in extreme scenarios, it might show a difference.
|
| | |
|
| |
| |
| |
| | |
which disables both frame and block checksums.
|
| |
| |
| |
| |
| | |
on command line, using existing long command --no-frame-crc.
Note : it's effectively more than that, since _all_ checksums are disabled.
|