80 Commits

Author SHA1 Message Date
Timofey Solomko a41fe89076 [Tests] Add a test for 7-zip container with large LZMA dictionary size 2026-05-14 21:33:33 +08:00
Timofey Solomko 3686067e54 [LZMA] Remove LZMARangeDecoder.isCorrupted property
According to LZMA specification this property is ignored by the reference implementation. In addition, specification suggests that other LZMA decoders should also ignore it. We weren't using this property for anything anyway, so its removal does not really change anything, except for better compliance with LZMA specification.

In addition, range decoder initialization error is now thrown in accordance with reference implementation.
2026-02-23 18:08:26 +08:00
Timofey Solomko 273b6ed9e9 Remove redundant imports 2026-02-18 12:21:57 +08:00
Timofey Solomko ea9aaccfb9 Update copyright year to 2026 2026-01-31 15:30:24 +08:00
Timofey Solomko ed66991cbd Update copyright year to 2024 2024-01-11 16:57:04 +03:00
Timofey Solomko c85adf3d73 [LZMA] Init range decoder's code with only one byte reader call 2023-02-19 16:51:03 +02:00
Timofey Solomko ae99c943f6 [LZMA] Fix incorrect check for empty out window
This was caused by incorrectly assuming that out window (dictionary) always starts at 0 index. This is not correct in the case of LZMA2 where dictionary may have been reset, but the out window is technically not an empty array.
2023-02-19 16:49:14 +02:00
Timofey Solomko 43132fc39d Update copyright year to 2023 2023-02-07 15:31:45 +02:00
Timofey Solomko 79295db930 Update copyright year to 2022 2022-01-08 15:02:59 +03:00
Timofey Solomko cb730a334d [LZMA] Change LZMAConstants from struct to enum 2021-07-21 19:47:05 +03:00
Timofey Solomko aba14af8c5 Small changes to code comments 2021-07-17 11:14:53 +03:00
Timofey Solomko 5245a73a6c Merge branch 'hotfix-4.5.11' into develop 2021-06-12 18:53:45 +03:00
Timofey Solomko 1fa0abce06 [docs] Add docs for LZMAProperties.init() 2021-06-12 18:39:35 +03:00
Timofey Solomko 03d47628a1 Merge branch 'hotfix-4.5.9' into develop 2021-05-01 16:14:33 +03:00
Timofey Solomko 2d1ff23436 Convert LZMA/LZMA2 internal types to structs
This change results in a performance boost due to reduction in retain/release calls.
2021-04-21 22:59:17 +03:00
Timofey Solomko 1fca632c2d Update copyright year to 2021 2021-03-26 13:50:20 +02:00
Timofey Solomko e83f23effa Update copyright year to 2021 2021-01-11 11:20:57 +02:00
Timofey Solomko deab72a831 Merge branch 'hotfix-4.5.7' into develop 2020-10-16 15:57:08 +03:00
Timofey Solomko a07fc290a0 Small fixes to code comments 2020-10-15 23:35:34 +03:00
Timofey Solomko 00af5a9319 [BZip2][GZip][LZMA][XZ][Zlib] Fix crashes when opening very small files
Instead errors are now thrown.
2020-10-15 23:35:34 +03:00
Timofey Solomko a844b34436 Update copyright year to 2020 2020-03-20 09:43:42 +03:00
Timofey Solomko f6949a8f66 Replace the usage of the deprecated Data(bytes:) initializer 2020-03-20 09:40:48 +03:00
Timofey Solomko 31ec1f1553 Update copyright year to 2020 2020-01-01 19:06:33 +03:00
Timofey Solomko 75b21ae107 Replace usage of ByteReader with LittleEndianByteReader 2019-05-01 19:34:30 +03:00
Timofey Solomko db82490ed8 Replace the usage of the deprecated Data(bytes:) initializer 2019-05-01 19:30:48 +03:00
Timofey Solomko c93a783d21 [docs] Fix grammar issues with regards to a/the/null articles, while/during, and extra commas 2019-03-13 12:27:08 +03:00
Timofey Solomko e518961218 [LZMA] Add public LZMAProperties.init() which uses default values of lc, etc. 2019-03-13 12:17:18 +03:00
Timofey Solomko 5ebe98796f [LZMA] Add default values for lc, lp, pb, and dictionarySize properties of LZMAProperties 2019-03-13 12:16:42 +03:00
Timofey Solomko ce47019097 Update copyright year to 2019 2019-01-02 23:15:43 +03:00
Timofey Solomko e92782cea0 [docs] Explain min value for LZMAProperties.dictionarySize 2018-09-11 21:57:52 +03:00
Timofey Solomko 925bd363ff [docs] Add docs for LZMA-properties related APIs 2018-09-11 20:07:02 +03:00
Timofey Solomko 7f27fdaf7c [LZMA] Slightly rewrite initializer for RangeDecoder 2018-09-06 20:07:09 +03:00
Timofey Solomko f5d8d9e81e [LZMA] Add LZMAProperties initializer which reads lzma encoded properties from bytereader 2018-08-28 11:36:34 +03:00
Timofey Solomko 9a79aa8e51 [LZMA][ZIP] Add public function with data as first argument and internal function with byteReader instead which also accept LZMA properties and uncompressed size as
arguments; replace old internal decompress function used by ZIP with a new, more general one
2018-08-28 11:35:56 +03:00
Timofey Solomko 4e6d3beea9 [LZMA] Replace LZMAProperties.updateProperties with init from lzma byte and dict size 2018-08-28 11:34:04 +03:00
Timofey Solomko 8737e6e2df [LZMA] Remove LZMADecoder.setProperties 2018-08-28 11:34:04 +03:00
Timofey Solomko 658611e2f1 [LZMA] Initialize properties in decoder with property initialzier 2018-08-28 11:34:04 +03:00
Timofey Solomko bcc703d1f6 [LZMA2] Move LZMAProperties.updateDictionarySize function into LZMA2Decoder initializer 2018-08-22 10:40:16 +03:00
Timofey Solomko 30f46e06db [LZMA] Use LZMAProperties.updateProperties function in LZMA decoder 2018-08-22 10:40:16 +03:00
Timofey Solomko f4d46b7545 [LZMA] Add function to LZMAProperties which updates dictionary size with byte encoded with LZMA2 encoding scheme 2018-08-22 10:40:16 +03:00
Timofey Solomko af40531e7a [LZMA] Extract setting properties part from init-with-lzma-byte of LZMAProperties as a separate function 2018-08-22 10:40:16 +03:00
Timofey Solomko 7ca677c3d5 [LZMA] Add several initializers to LZMAProperties
These include: init-with-zeros, init-with values, and init from a single byte using standard LZMA properties encoding scheme.
2018-08-22 10:40:11 +03:00
Timofey Solomko b52a55d54d [LZMA] Replace references to properties of LZMADecoder with references to LZMAProperties property of decoder 2018-08-22 10:38:53 +03:00
Timofey Solomko 56600d2178 [LZMA] Add LZMAProperties property to LZMADecoder 2018-08-22 10:38:53 +03:00
Timofey Solomko e6d680e82b [LZMA] Add observer to LZMAProperties.dictionarySize which keeps it max bounded 2018-08-22 10:38:53 +03:00
Timofey Solomko 726e067fe4 [LZMA] Add LZMAProperties struct with all properties (lc, lp, pb and dict size) 2018-08-22 10:38:53 +03:00
Timofey Solomko ffb0324afe [docs] Clarify in docs for LZMA.decompress about bytes at the beginning of data 2018-08-22 10:36:23 +03:00
Timofey Solomko 062109d947 [LZMA] Reset decoder state inside LZMADecoder.setProperties
This removes additional requirement to call resetStateAndDecoders after calling setProperties.
2018-08-13 20:30:24 +03:00
Timofey Solomko d75ee1e1f2 [LZMA] Change type of lc, lp and pb properties to Int 2018-08-13 12:37:35 +03:00
Timofey Solomko 6cfdc0ab29 [LZMA] Rename LZMADecoder.dictionarySize to dictSize 2018-05-20 12:55:46 +03:00