1539 Commits

Author SHA1 Message Date
Timofey Solomko 25f6d4f5ac Make bzip2 lengths creation algorithm slightly more space efficient 2017-09-27 22:04:26 +03:00
Timofey Solomko d3839a70ad Rename files with compress extensions 2017-09-27 22:02:42 +03:00
Timofey Solomko 49b7de06a3 Create multiple bzip2 blocks 2017-09-27 22:01:57 +03:00
Timofey Solomko 401d3cf26b Extract code for BW transformation 2017-09-27 20:04:01 +03:00
Timofey Solomko 70b02066fc Fix potential crash with index out of range in selectorList in BZip2
Both compression and decompression.
2017-09-17 20:23:47 +03:00
Timofey Solomko f8d4451c18 Remove recursive procedure for huffman lengths generation 2017-09-17 13:03:59 +03:00
Timofey Solomko 3a0335d5f5 Use new lengths creation function in BZip2 compression 2017-09-17 13:03:03 +03:00
Timofey Solomko e5d2b78781 Add new procedure for huffman code length generation 2017-09-17 13:02:09 +03:00
Timofey Solomko 34f718e152 Add BZip2 compression implementation 2017-09-10 13:10:36 +03:00
Timofey Solomko 26d7e7e1b4 Add SuffixArray implementation 2017-09-10 13:09:40 +03:00
Timofey Solomko 70411024d1 Slightly updated bitSize function of EncodingHuffmanTree 2017-09-03 23:20:22 +03:00
Timofey Solomko 59237d3790 Add RecursiveHuffmanTree enum
It will be used in HuffmanTree construction in BZip2 compression.
2017-09-03 23:18:49 +03:00
Timofey Solomko a70e557f38 Extract HuffmanLength array creation code into Deflate specific file 2017-09-03 22:46:00 +03:00
Timofey Solomko cebf0555e5 Make HuffmanLength Comparable and use this in their sorting in HuffmanTree 2017-09-03 20:04:44 +03:00
Timofey Solomko f96f446827 More elegant solution for zero code lengths problem 2017-09-03 19:59:46 +03:00
Timofey Solomko 69fa9a2646 Remove unused inits from HuffmanTrees 2017-09-03 14:18:23 +03:00
Timofey Solomko 49228a049f Fix HuffmanTree init crash when zero codeLength is encountered 2017-09-03 14:16:59 +03:00
Timofey Solomko a357837065 Use new HuffmanLengths in deflate compression huffmantree construction 2017-09-03 14:16:30 +03:00
Timofey Solomko 818e387028 Use new HuffmanLengths in dynamic deflate huffman tree construction 2017-09-03 14:16:10 +03:00
Timofey Solomko 4addd8098e Use new HuffmanLengths in construction of static huffman trees in deflate 2017-09-03 14:05:12 +03:00
Timofey Solomko fc63053899 Use new HuffmanLengths in BZip2 decompression (in huffman tables creation) 2017-09-03 14:01:50 +03:00
Timofey Solomko 5d19120b63 Add inits from new HuffmanLengths to HuffmanTrees 2017-09-03 14:00:26 +03:00
Timofey Solomko 97c767abf5 Add HuffmanLength class
This class represents (symbol, codeLength) pairs used in construction of HuffmanTrees. It also includes useful functions for generating HuffmanLengths from other structures.
2017-09-03 13:58:11 +03:00
Timofey Solomko 94545c06a9 Another batch of small changes to bzip2 2017-09-03 13:49:18 +03:00
Timofey Solomko 6e9248fcd5 Remove try and throws where possible
This is because of the replacement of symbolNotFound throws with fatalErrors in compression related functions.
2017-09-02 23:24:55 +03:00
Timofey Solomko af38fa1717 Fix problems with write(number:...) function of BitWriter 2017-09-02 23:12:55 +03:00
Timofey Solomko 8b6b9b9478 Add bitSize function to EncodingHuffmanTree
This function calculates expected size (in bits) of data based on data's stats.
2017-09-02 23:01:01 +03:00
Timofey Solomko baad3196dc Add variant of bzip2 crc32 function with Data argument
Will be used in BZip2 compression
2017-09-02 23:00:10 +03:00
Timofey Solomko 78fb8cb07b Small changes to bzip2 code 2017-09-02 22:59:31 +03:00
Timofey Solomko cc77cfaad6 Use fatalError instead of symbolNotFound error throw in EncodingHuffmanTree
It is a programming error if symbol is not found during encoding, thus, we should use fatalError.
2017-09-02 20:07:19 +03:00
Timofey Solomko cb54a5fa02 Use tuples in inits of huffman trees 2017-09-02 20:03:21 +03:00
Timofey Solomko 5b3e4e72d3 Extract Deflate huffman trees' bootstraps as constants 2017-09-02 20:02:55 +03:00
Timofey Solomko 12da128ddd Change EncodingHuffmanTree API to be more consistent with decoding tree and cleanup usage 2017-08-29 00:10:04 +03:00
Timofey Solomko 2aca494757 Rename HuffmanTree into DecodingHuffmanTree 2017-08-29 00:03:56 +03:00
Timofey Solomko 9827e32bdd Extract code for huffman encoding into separate class 2017-08-29 00:01:03 +03:00
Timofey Solomko 43f7dd6c50 Remove FIXME in 7zContainer 2017-08-22 15:01:13 +03:00
Timofey Solomko c32cd538d6 Prepare for 3.3.0 2017-08-20 10:49:42 +03:00
Timofey Solomko 82b4da8789 Add and update docs for other classes. 2017-08-19 16:23:55 +03:00
Timofey Solomko 33c347c131 Add documentation for 7z 2017-08-19 16:23:26 +03:00
Timofey Solomko 0ff3e2f5e3 Significantly reduce number of error cases in 7zError
Also some of them were renamed.
2017-08-19 15:46:43 +03:00
Timofey Solomko 14e77ee616 Fix compile issues with renamed variable 2017-08-18 09:48:36 +03:00
Timofey Solomko 745368e50d Small fixes here and there 2017-08-16 22:47:24 +03:00
Timofey Solomko c8be30a942 Prepare for second test release 2017-08-16 22:17:59 +03:00
Timofey Solomko a1daa622a5 Swiftlinted 2017-08-16 22:16:22 +03:00
Timofey Solomko 87c35fcc24 Add build time configuration of used compression methods in 7z in cocoapods configurations 2017-08-16 22:07:09 +03:00
Timofey Solomko 5ae920edb3 Rename build flags used in cocoapods configurations 2017-08-16 21:55:29 +03:00
Timofey Solomko b7d5b3c997 Store unknown properties of 7z file info 2017-08-16 21:52:37 +03:00
Timofey Solomko c155b3910d Remove rawUnpackSize from 7z.open() 2017-08-16 21:51:53 +03:00
Timofey Solomko 3bfce7fe7f Move Date extension into Extensions file 2017-08-16 21:36:51 +03:00
Timofey Solomko ce4e12ac18 Rework XZ so multiByteDecode doesn't return tuples 2017-08-16 21:36:12 +03:00