summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Suppress warning from rc.exeTakayuki Matsuoka2022-08-121-0/+4
| | | | | | | | | | 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.
* Suppress false positive warning from MSVCTakayuki Matsuoka2022-08-121-0/+7
| | | | | | | | | | | | 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 with -BD4 settingYann Collet2022-08-121-16/+22
| | | | | | | | | | | 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.
* updated documentation in anticipation for `v1.9.4` releaseYann Collet2022-08-111-13/+13
|
* Add short description of LZ4_FREESTANDING and _DISABLE_MEMORY_ALLOCATIONTakayuki Matsuoka2022-08-111-0/+12
|
* Fix document for LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION in lz4.cTakayuki Matsuoka2022-08-111-1/+6
|
* Merge pull request #1129 from t-mat/disable-memory-alloc-add-docYann Collet2022-08-102-0/+15
|\ | | | | Add document for LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION
| * Fix: Disable prototypes in header fileTakayuki Matsuoka2022-08-061-0/+4
| |
| * Add: Doxygen comment for LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATIONTakayuki Matsuoka2022-08-061-0/+11
| |
* | Add short document of LZ4_FREESTANDING to lz4.hTakayuki Matsuoka2022-08-101-4/+11
| |
* | Fix: Disable LZ4HC correspond functions when ↵Takayuki Matsuoka2022-08-072-1/+5
| | | | | | | | LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION is enabled
* | Add LZ4_FREESTANDINGTakayuki Matsuoka2022-08-072-1/+26
|/
* Merge pull request #1124 from t-mat/compile-time-purge-memalloc-funcYann Collet2022-08-052-1/+15
|\ | | | | Introduce LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATION
| * Fix : Internal memory allocation macro namesTakayuki Matsuoka2022-07-311-6/+3
| |
| * Introduce LZ4_STATIC_LINKING_ONLY_DISABLE_MEMORY_ALLOCATIONTakayuki Matsuoka2022-07-312-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | simplify read_variable_length()Yann Collet2022-08-031-26/+24
| | | | | | | | single sumtype return value
* | refactor read_variable_length()Yann Collet2022-08-021-19/+29
| | | | | | | | | | updated documentation, more assert(), overflow detection in 32-bit mode
* | remove support of decompress_fast*() from decompress_generic()Yann Collet2022-08-021-92/+43
| | | | | | | | | | | | | | since it's now supported by decompress_unsafe(). The goal is to improve maintenability of decompress_generic() by reducing its complexity.
* | introduce LZ4_decompress_unsafe_generic()Yann Collet2022-08-021-18/+158
| | | | | | | | | | | | | | 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 typosDominique Pelle2022-07-313-3/+3
| |
* | New macro for memcpy, memmove and memsetTakayuki Matsuoka2022-07-312-13/+26
|/ | | | | | | | 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.
* can select validation of CRC during benchmarkYann Collet2022-07-291-4/+4
| | | | | on command line, using existing long command --no-frame-crc. Note : it's effectively more than that, since _all_ checksums are disabled.
* added ability to skip checksum calculation when decoding LZ4 FramesYann Collet2022-07-292-11/+21
|
* implement decoder-only benchmark modeYann Collet2022-07-292-7/+7
| | | | requires an LZ4 Frame as input
* minor refactorYann Collet2022-07-292-37/+53
| | | | to prepare bench.c for multiple decoding functions.
* Merge pull request #1115 from lz4/lz4f_customMemYann Collet2022-07-162-91/+201
|\ | | | | Support for Custom Memory managers
| * implemented LZ4F_createCDict_advanced()Yann Collet2022-07-132-40/+55
| |
| * implemented LZ4F_createDecompressionContext_advanced()Yann Collet2022-07-132-17/+30
| |
| * Merge branch 'dev' into lz4f_customMemYann Collet2022-07-132-6/+11
| |\
| * | implemented first custom memory manager interfaceYann Collet2022-07-132-81/+139
| | | | | | | | | | | | | | | | | | | | | for compression context only for the time being, using LZ4F_createCompressionContext_advanced(). Added basic test in frametest.c
| * | declare experimental prototype for LZ4F custom Memory managerYann Collet2022-07-131-0/+23
| | |
* | | support skippable frames within pipeYann Collet2022-07-152-2/+2
| |/ |/| | | | | | | | | | | fix #977 fseek() doesn't work for pipe, switch to "read and forget" mode in such case.
* | fix stricter enum type requirements for C++Yann Collet2022-07-131-4/+4
| |
* | minor : proper interface for LZ4F_getBlockSize()Yann Collet2022-07-132-2/+6
|/ | | | | and proper documentation. Also : updated manual
* removed ->dictBase from lz4hc stateYann Collet2022-07-132-27/+34
| | | | replaced by ->dictStart
* removed ->base from lz4hc stateYann Collet2022-07-132-67/+68
| | | | replaced by ->prefixStart
* Re-organize state's internal to be more compactYann Collet2022-07-131-4/+5
| | | | | produces less padding, notably on OS400 following #1070 by @jonrumsey
* minor : specify min versions for library version identifiersYann Collet2022-07-122-45/+26
|
* clarify static sizes of states for static allocationYann Collet2022-07-124-72/+33
|
* Merge pull request #1104 from jonrumsey/os400-build-fixYann Collet2022-07-112-3/+47
|\ | | | | Change definitions of LZ4_xxxSIZE defines for OS400
| * Change definitions of LZ4_STREAMSIZE, LZ4_STREAMDECODESIZE and ↵jonrumsey2022-07-112-3/+47
| | | | | | | | | | | | LZ4_STREAMHCSIZE to factor in OS400 pointer length and structure alignment rules Update the length values on platforms where pointers are 16-bytes, factor in implicit compiler padding to ensure proper alignment of members and overall structure lengths
* | minor refactor : simplify LZ4F_makeBlockYann Collet2022-07-111-27/+20
|/ | | | one less argument
* Merge pull request #1094 from alexmohr/add-uncompressed-apiYann Collet2022-07-052-19/+122
|\ | | | | frame-api: add function to insert uncomressed data
| * review: fix findingsAlexander Mohr2022-07-052-13/+1
| | | | | | | | | | | | | | | | | | * replace assert with test for LZ4F_uncompressedUpdate * update documentation to incldue correct docstring * remove unecessary entry point * remove compress_linked_block_mode from fuzzing test Signed-off-by: Alexander Mohr <alexander.m.mohr@mercedes-benz.com>
| * uncompressed-api: allow uncompressed_update only for independent blocksAlexander Mohr2022-07-055-151/+84
| | | | | | | | Signed-off-by: Alexander Mohr <alexander.m.mohr@mercedes-benz.com>
| * lz4frame: correct start and size after flushAlexander Mohr2022-07-041-1/+4
| | | | | | | | | | | | | | | | | | | | | | when the block mode changes a flush is executed, to prevent mixing compressed and uncompressed data. Prior to this commit dstStart, dstPtr, dstCapacity where not updated to include the offset from bytesWritten. For inputs > blockSize this meant the flushed data was overwritten. Signed-off-by: Alexander Mohr <alexander.m.mohr@mercedes-benz.com>
| * meson: fix meson buildAlexander Mohr2022-06-111-1/+1
| | | | | | | | add static dependency to examples
| * dict-size: make lz4 context constAlexander Mohr2022-06-114-6/+6
| | | | | | | | | | change the context to const to make clear that the context is not modified
| * lz4frame: fix different linkage errorAlexander Mohr2022-06-111-1/+1
| | | | | | | | Signed-off-by: Alexander Mohr <alexander.m.mohr@mercedes-benz.com>
| * fuzz-test: add fuzz test for uncompressed apiAlexander Mohr2022-06-111-2/+1
| | | | | | | | | | | | add a fuzzing test for uncompressed frame api Signed-off-by: Alexander Mohr <alexander.m.mohr@mercedes-benz.com>