Commit Graph

44 Commits

Author SHA1 Message Date
Timofey Solomko 773c32dd44 Sometimes two bytes are not enough for finding next symbol. 2016-10-31 00:43:12 +03:00
Timofey Solomko 18b1a8c168 Fixed another problem with 'overflowing' shift. 2016-10-31 00:32:10 +03:00
Timofey Solomko 8f7418719f Since shift+extraDistance could be greater than 16, it could cause errors. This was fixed. 2016-10-31 00:02:20 +03:00
Timofey Solomko 385bd2fbfc Fixed incorrect calculation of mainLiterals table in case of dynamic Huffman coding. 2016-10-31 00:01:29 +03:00
Timofey Solomko 472efcbdff Fixed incorrect calculation of extraLengthBits. 2016-10-31 00:00:45 +03:00
Timofey Solomko 338b40a55a Added support for other platforms. 2016-10-30 20:07:04 +03:00
Timofey Solomko 26e515a68c Added documentation for protocols. 2016-10-30 16:35:11 +03:00
Timofey Solomko 32f90ab62c Added documentation comments. 2016-10-30 16:29:42 +03:00
Timofey Solomko 9ead9b1243 Added two new convert... functions with straight bit order in array argument. 2016-10-30 14:45:56 +03:00
Timofey Solomko 5c00605852 convertToInt/convertToUInt8 functions' argument renamed to reversedUint8Array. 2016-10-30 14:45:12 +03:00
Timofey Solomko d624f9f018 Added ZlibArchive. 2016-10-30 14:26:50 +03:00
Timofey Solomko 2fb0cb1559 Check if reserved flags are zero in gzip (specification compliance). 2016-10-30 13:42:32 +03:00
Timofey Solomko edfd49e3bf Fixed copyright notice. 2016-10-29 22:32:01 +03:00
Timofey Solomko bcaa85e0e8 Gzip related code moved into separate file; added two protocols; extended serviceInfo structure. 2016-10-29 22:27:11 +03:00
Timofey Solomko e557cce7ed Swiftlinted. 2016-10-29 21:24:40 +03:00
Timofey Solomko 3981159f7e Fixed a few swift warnings. 2016-10-29 21:17:20 +03:00
Timofey Solomko be43928774 bits function of Data extension now checks if start is the same as the end. 2016-10-29 17:55:47 +03:00
Timofey Solomko 7bab0020ff Fixed a problem with repeated strings in data. 2016-10-29 17:46:46 +03:00
Timofey Solomko 6d435e7a5e findNextSymbol now returns shift and this calculation is now correct and used everywhere. 2016-10-28 21:04:16 +03:00
Timofey Solomko c7a66d58ea Apparently, I've missed extraDistanceBits array and was reading a value from wrong array. This was fixed. 2016-10-28 21:02:31 +03:00
Timofey Solomko cdb3384740 Completed implementation of Deflate. 2016-10-28 20:00:34 +03:00
Timofey Solomko 4fff569544 Implemented dynamic coding. 2016-10-27 19:35:48 +03:00
Timofey Solomko 3fed92ffe6 Added new extension for getting an array of bits from ambigious places in Data objects; convert array to number functions moved to Extensions file. 2016-10-27 14:47:27 +03:00
Timofey Solomko 9f9ad78eab Added extensions, findNextSymbol; HuffmanLength moved to a separate file. 2016-10-26 21:03:19 +03:00
Timofey Solomko 013350ec86 Implemented OrderedHuffmanTable and combined all auxiliary functions into HuffmanTable's initializer. 2016-10-26 11:33:07 +03:00
Timofey Solomko 851d2d7e0d Rearrangement of code (also symbols are populated and maximums are computed at initialization). 2016-10-26 01:00:00 +03:00
Timofey Solomko f807768e52 Implemented minMaxBits for HuffmanTable. 2016-10-26 00:49:55 +03:00
Timofey Solomko c06d34fb23 Data type actually has built-in subscripts, so home-made subscripts were replaced by them. 2016-10-25 23:25:35 +03:00
Timofey Solomko 78c53e6d06 Cleanuped code. 2016-10-25 23:07:13 +03:00
Timofey Solomko 47e42c4334 Added a lot of comments and rewrote some bad code. 2016-10-24 23:22:36 +03:00
Timofey Solomko ad37c5a918 Added reversedSymbol for HuffmanLength and code to populate symbols of HuffmanTable. 2016-10-24 21:55:05 +03:00
Timofey Solomko cc26d2ff4c Added code for processing static Huffman block. 2016-10-24 21:31:12 +03:00
Timofey Solomko 0a4b6a3474 Fixed problem with recognizing block type. 2016-10-24 21:30:51 +03:00
Timofey Solomko a1745142eb Added HuffmanLength and initializer from bootstrap for HuffmanTable. 2016-10-24 21:29:06 +03:00
Timofey Solomko a0500b84c3 Actually, if you read specifications carefully you will find out that the remaining bits should be dropped. 2016-10-24 20:31:18 +03:00
Timofey Solomko 987a3608c2 Now while-loop actually breaks. 2016-10-24 20:23:50 +03:00
Timofey Solomko 1c7ff6150b Moved UInt8 and Data extensions to a combined file. Added function to "combine" two bytes into one. 2016-10-24 20:23:26 +03:00
Timofey Solomko 1bc2c46936 Added code to process uncompressed blocks. 2016-10-24 20:21:38 +03:00
Timofey Solomko 0122811b3f Added some extensions to Data to allow getting misaligned bytes. 2016-10-24 20:20:48 +03:00
Timofey Solomko 24a1ae2ac6 Some progress was made on reading information from archive. 2016-10-24 00:22:58 +03:00
Timofey Solomko 51025f1f2d Added useful UInt8 extensions. 2016-10-24 00:21:08 +03:00
Timofey Solomko e21e263d58 Added file for Huffman table. 2016-10-24 00:19:53 +03:00
Timofey Solomko cedd0f6452 Added some initial code for deflate compression (and test). 2016-10-23 15:29:20 +03:00
Timofey Solomko 70e51b3c26 Added project. 2016-10-16 22:52:23 +03:00