102 Commits

Author SHA1 Message Date
Timofey Solomko 2b47fb7f49 [Deflate] Replace computation of static tree codes from lenghts with precomputed codes 2022-05-21 23:00:36 +03:00
Timofey Solomko f539a53386 [Huffman] Ensure that there is data available in findNextSymbol()
This fixes potential crashes in BZip2 and Deflate when processing truncated data (a corresponding symbolNotFound error will be thrown instead). There is a performance penalty to this fix, though.
2022-01-20 22:07:43 +03:00
Timofey Solomko 79295db930 Update copyright year to 2022 2022-01-08 15:02:59 +03:00
Timofey Solomko 6971656b63 Two minor changes: make Checksums a caseless enum, fix a grammar mistake in a code comment 2021-11-04 12:10:39 +03:00
Timofey Solomko d73fc791b1 [docs] Add documentation for DataError 2021-11-03 20:19:41 +03:00
Timofey Solomko 7a43328b8e [BZip2] Rename crc32 function for bzip2 2021-10-22 21:55:33 +03:00
Timofey Solomko 490d5ad816 Make DataError conform to Equatable 2021-09-26 14:03:38 +03:00
Timofey Solomko bb39e6e36d Remove DataError.encrypted
I think, this case is covered by DataError.unsupportedFeature, and we don't want redundant cases, since we're trying to minimize the amount of different error types.
2021-09-25 15:50:21 +03:00
Timofey Solomko 3cb6cac20b Add two more cases to DataError 2021-09-24 18:55:31 +03:00
Timofey Solomko 135f4c3bcd Add DataError enum
This enum will be used going forward instead of algorithm-specific error enums.
2021-09-23 21:46:30 +03:00
Timofey Solomko cb8a6738a0 [Common] Change DeltaFilter from final class to enum 2021-07-21 19:47:30 +03:00
Timofey Solomko c19694aa12 Merge branch 'hotfix-4.5.10' into develop 2021-05-23 00:10:17 +03:00
Timofey Solomko 5f7141fd78 Replace Int arrays in EncodingTree with a new CodingIndex struct
The hope is that this will improve memory layout/management, and, consequently, improve performance (slightly).
2021-05-22 23:34:31 +03:00
Timofey Solomko 03d47628a1 Merge branch 'hotfix-4.5.9' into develop 2021-05-01 16:14:33 +03:00
Timofey Solomko f808a8b9b3 [BZip2] Fix a crash on non-standard run length greater than 255 2021-05-01 13:45:02 +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 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 04b87f9e95 Mark @inline(__always) functions as @inlinable 2019-05-01 19:36:51 +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 04f64bcb72 Rename Encoding/DecodingHuffmanTree to just Encoding/DecodingTree 2019-03-12 22:31:35 +03:00
Timofey Solomko 142fd44dd2 Remove old CodeLength initializer from Encoding(Huffman)Tree 2019-03-12 22:31:24 +03:00
Timofey Solomko 250c9fbd4c Remove old CodeLength initializer from Decoding(Huffman)Tree 2019-03-12 22:31:13 +03:00
Timofey Solomko 5e51968ca6 Add a func which generates Huffman codes based on their lengths 2019-03-12 22:31:02 +03:00
Timofey Solomko 6889f58461 Add new initiliaziers to huffman trees which init from codes instead of lengths 2019-03-12 22:30:50 +03:00
Timofey Solomko 7ae5cfa1a2 Add a new struct which represents an abstract code from coding tree 2019-03-12 22:30:35 +03:00
Timofey Solomko 9f138f86a6 Move Huffman tree related code into the CodingTree sub-group/directory 2019-03-12 22:30:21 +03:00
Timofey Solomko 1df768c09f Move the lengths bootstrapping function into the namespace of the CodeLength 2019-03-12 22:29:53 +03:00
Timofey Solomko 7f25dbf6e7 Rename HuffmanLength to CodeLength 2019-03-12 22:28:01 +03:00
Timofey Solomko 08bea5ad53 Make Huffman tree classes final 2019-01-04 20:22:09 +03:00
Timofey Solomko ce47019097 Update copyright year to 2019 2019-01-02 23:15:43 +03:00
Timofey Solomko 8457f85c75 Add implementation for decoding Delta filter 2018-08-29 10:30:05 +03:00
Timofey Solomko 3790b3acac [docs] Clarify in docs for ContainerEntry.data that data is assumed to be uncompressed 2018-08-07 21:05:36 +03:00
Timofey Solomko 3d3d4a2c0e Move Comparable extension of HuffmanLength into its main file 2018-04-13 22:56:15 +03:00
Timofey Solomko 7929e58022 Synthesize Equatable conformance for HuffmanLength 2018-04-13 22:55:12 +03:00
Timofey Solomko 05268bd44e [docs] Add "missing" docs for Container.Entry and and ContainerEntry.Info
Apparently, something changed in Swift 4.1 and sourcekitten/jazzy now detects associated types and produces documentation for them.
2018-04-13 18:53:58 +03:00
Timofey Solomko 9293210d35 All properties in huffman trees are now constant 2018-03-31 13:50:50 +03:00
Timofey Solomko 112fa8bbb0 Date init from ntfs timestamp is no longer failable
The only reason for it to be was to propagate optionality of UInt64 argument. Instead we can if-let ntfs timestamp and call this initializer with non-optional argument. We also now force-unwrap ntfsReferenceDate, since it is likely to be a system problem if we cannot create definetely correct date from its components.
2018-03-25 23:42:53 +03:00
Timofey Solomko a34e272f97 [docs] Fix typo in Container protocol 2018-03-17 15:38:46 +03:00
Timofey Solomko b9f325f91b Small text/comments-related changes 2018-02-07 23:59:42 +03:00
Timofey Solomko 32d3cc6279 Extract ntfs timestamps reference date as static property 2018-01-28 19:17:52 +03:00
Timofey Solomko 8fa195d560 [TAR] Replace Int.roundTo512() function with bitwise inlinable version in common Extensions file 2018-01-17 12:12:29 +03:00
Timofey Solomko 536b5dcb49 Extract reverse local function of HuffmanTrees' inits as Int extension 2018-01-07 15:12:59 +03:00
Timofey Solomko e714dc308b Updated copyright year to 2018 2018-01-03 19:44:18 +03:00
Timofey Solomko d2d74d52b9 Remove unused extensions 2018-01-03 19:22:15 +03:00
Timofey Solomko c8d92e56d3 Replace BitReader and ByteReader with BitByteData's implementations 2018-01-03 19:22:15 +03:00