summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* document Makefile variablesYann Collet2022-09-131-0/+7
|
* build: Support BUILD_SHARED=noFotis Xenakis2022-09-131-0/+4
| | | | | | Since e585a438c714652e866a59371b287f52aa4d2dc3, the BUILD_SHARED Makefile variable only takes effect for the install target (i.e. the shared libraries always built). This restores the original behaviour.
* Clarifiy documentation for LZ4F_HEAPMODEYann Collet2022-09-132-3/+5
| | | | | | Now it's only about LZ4F_compressFrame(), and it's only about the Compression Context (not the hash tables, which used to be integrated).
* simplify getPositionYann Collet2022-09-121-9/+7
| | | | | it's only used in byPtr mode. This removes the need to transfer `base` ptr value.
* fixed a few ubsan warnings in lz4hcYann Collet2022-09-091-18/+18
| | | | mostly related to pointer arithmetic involving NULL ptr.
* added LZ4F_compressUpdate() in fullbenchYann Collet2022-09-081-1/+1
|
* allocation optimization for lz4frame compressionYann Collet2022-09-081-7/+6
| | | | | | | | | | | | | | | | | | | | | | | as noted by @yixiutt, the temporary buffer inside lz4frame compression is being invalidated at end of compression, forcing it to be re-allocated at next compression job. This shouldn't be necessary. This change was introduced in #236, as a way to fix #232, but neither the issue is explained, nor why the patch fixes it. This patch revert to previous behavior, where temporary buffer is kept between compression calls. This results in a net reduction of allocation workload. Additionally, the temporary buffer should only need malloc(), not calloc(), thus saving initialization. This diff implements both changes. Long fuzzer tests will be run to ensure that no sanitizer warning get triggered. Additionally : fixed a minor ubsan warning in LZ4F_decompress().
* Add note about RC_INVOKEDTakayuki Matsuoka2022-08-121-0/+13
|
* 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