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