ObjFW  History of src/OFInflateStream.m of 975fa1d8f3d79e47

History of the file that is called src/OFInflateStream.m at check-in 975fa1d8f3d79e47

2024-04-29
21:42
[ee0deaa4d9] part of check-in [f16bccc7b3] Properly hide private symbols (check-in: [f16bccc7b3] user: js, branch: trunk, size: 17343) [annotate] [blame] [check-ins using] [diff]
2024-04-03
02:16
[5f2d55b677] part of check-in [7413a728a7] Change license to LGPLv3 only (check-in: [7413a728a7] user: js, branch: trunk, size: 17329) [annotate] [blame] [check-ins using] [diff]
2024-03-10
23:00
[533f2c6519] part of check-in [f7faf2bfa6] OFInflateStream: Return if we can't read

Otherwise we spin forever if the underlying stream keeps returning 0 on
read.

This can happen if the end of a ZIP part has been reached. Returning
allows to switch the underlying stream to the next part. (check-in: [f7faf2bfa6] user: js, branch: 1.0, size: 17142) [annotate] [blame] [check-ins using] [diff]

23:00
[9d9894c2fe] part of check-in [a72f602c2a] OFInflateStream: Return if we can't read

Otherwise we spin forever if the underlying stream keeps returning 0 on
read.

This can happen if the end of a ZIP part has been reached. Returning
allows to switch the underlying stream to the next part. (check-in: [a72f602c2a] user: js, branch: trunk, size: 17121) [annotate] [blame] [check-ins using] [diff]

2024-02-03
11:41
[7726e7ab7e] part of check-in [7324ec8590] Update copyright (check-in: [7324ec8590] user: js, branch: 1.0, size: 17089) [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
[6ae6dfa239] part of check-in [26ddd2e4e4] Update copyright (check-in: [26ddd2e4e4] user: js, branch: trunk, size: 17068) [annotate] [blame] [check-ins using] [diff]
2023-10-15
12:32
[fd902a590d] part of check-in [a61e0594b4] Add -[OFStream lowlevelIsAtEndOfStream]

This allows for a much cleaner solution to avoid the internal read
buffer of e.g. a TLS connection never being processed while waiting for
a delimiter. (check-in: [a61e0594b4] user: js, branch: trunk, size: 17068) [annotate] [blame] [check-ins using] [diff]

2023-07-25
21:21
[7aafb9081b] part of check-in [d6f5e2abc5] OFZIPArchive: Handle files spanning multiple parts (check-in: [d6f5e2abc5] user: js, branch: trunk, size: 17089) [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
[2767dcbcf2] part of check-in [8939cbdb52] Update copyright (check-in: [8939cbdb52] user: js, branch: trunk, size: 17048) [annotate] [blame] [check-ins using] [diff]
2022-11-16
01:27
[a61e69ad62] part of check-in [c86b8f10f0] Add OFAssert()

This uses the same format as OFEnsure(). (check-in: [c86b8f10f0] user: js, branch: trunk, size: 17048) [annotate] [blame] [check-ins using] [diff]

2022-02-12
07:46
[28d4702177] part of check-in [1a86b8175b] Update copyright (check-in: [1a86b8175b] user: js, branch: trunk, size: 17067) [annotate] [blame] [check-ins using] [diff]
2021-04-29
23:24
[ddc6f9f77f] part of check-in [2fcf5a3052] Clean up struct and enum typedefs

With TYPEDEF_HIDES_STRUCT set, Doxygen properly handles anonymous
structs and enums that are typedef'd. (check-in: [2fcf5a3052] user: js, branch: trunk, size: 17067) [annotate] [blame] [check-ins using] [diff]

2021-04-25
19:58
[94ff1319c4] part of check-in [6ae98c1dcf] Last round of renames (hopefully) (check-in: [6ae98c1dcf] user: js, branch: trunk, size: 17069) [annotate] [blame] [check-ins using] [diff]
2021-04-18
21:09
[f7f7b24442] part of check-in [17e4392ac9] Fix missed renaming in last commit (check-in: [17e4392ac9] user: js, branch: new-naming-convention, size: 17069) [annotate] [blame] [check-ins using] [diff]
20:51
[38c7319da8] part of check-in [35de667566] Rename everything in several smaller files (check-in: [35de667566] user: js, branch: new-naming-convention, size: 16791) [annotate] [blame] [check-ins using] [diff]
2021-04-17
22:45
[d85ba662c7] part of check-in [498074dab9] Rename of_(re)alloc and add OFFreeMemory (check-in: [498074dab9] user: js, branch: new-naming-convention, size: 16840) [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
[8a296ae0d3] part of check-in [374e1a1bfa] Update copyright (check-in: [374e1a1bfa] user: js, branch: trunk, size: 16795) [annotate] [blame] [check-ins using] [diff]
2020-11-14
12:23
[95c86a8053] part of check-in [627511b032] Rename of_malloc and of_calloc

The new names should be more accurate. (check-in: [627511b032] user: js, branch: trunk, size: 16884) [annotate] [blame] [check-ins using] [diff]

2020-11-05
02:27
[b112db9229] part of check-in [da1fb6b21c] Further reduce usage of -[allocMemoryWithSize:] (check-in: [da1fb6b21c] user: js, branch: trunk, size: 16873) [annotate] [blame] [check-ins using] [diff]
2020-09-27
03:08
[c1d8d6e047] part of check-in [9e9ce6aa1c] Work around bugs in Apple GCC 4.0.1

Still miscompiles things. (check-in: [9e9ce6aa1c] user: js, branch: trunk, size: 16898) [annotate] [blame] [check-ins using] [diff]

2020-01-14
00:16
[3cf4fd3893] part of check-in [3b43d51006] More consistent -[close] behavior

This means refusing to close twice, calling -[close] from -[dealloc] and
not calling -[cancelAsyncRequests].

Calling -[cancelAsyncRequests] in -[close] is too dangerous, as -[close]
gets called by -[dealloc]: If the queue is the last reference to the
object, at the point where -[cancelAsyncRequests] removes it from the
queue, the object will start to deallocate and call into
-[cancelAsyncRequests] again, which is still in the middle of removing
it and now finds itself with an inconsistent state. (check-in: [3b43d51006] user: js, branch: trunk, size: 16890) [annotate] [blame] [check-ins using] [diff]

2020-01-02
01:51
[89d633e369] part of check-in [c7f0229795] Update copyright (check-in: [c7f0229795] user: js, branch: trunk, size: 16789) [annotate] [blame] [check-ins using] [diff]
2019-09-29
20:53
[2d02df5db2] part of check-in [e0a330b377] Reduce ivar scopes (check-in: [e0a330b377] user: js, branch: trunk, size: 16786) [annotate] [blame] [check-ins using] [diff]
2019-03-20
21:04
[5b9953e18a] part of check-in [6a0bf8be32] Force inline tryReadBits and of_huffman_tree_walk

This gives a significant performance improvement, cutting decompression
time almost in half. (check-in: [6a0bf8be32] user: js, branch: trunk, size: 16815) [annotate] [blame] [check-ins using] [diff]

2019-03-08
00:35
[98e2dc75e9] part of check-in [bceb7ed4c9] Use dot syntax (check-in: [bceb7ed4c9] user: js, branch: trunk, size: 16788) [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
[b3630eb5b7] part of check-in [0509d7a844] Update copyright (check-in: [0509d7a844] user: js, branch: trunk, size: 16775) [annotate] [blame] [check-ins using] [diff]
2018-06-10
20:29
[929b5d3847] part of check-in [6b42e44f99] OF{LHA,ZIP}Archive: Improve truncation detection (check-in: [6b42e44f99] user: js, branch: trunk, size: 16769) [annotate] [blame] [check-ins using] [diff]
12:29
[673c1237d7] part of check-in [2e354552ad] OFLHAArchive: Skip compressed entries much faster (check-in: [2e354552ad] user: js, branch: trunk, size: 16728) [annotate] [blame] [check-ins using] [diff]
2018-06-09
14:36
[84940553dd] part of check-in [1b5d3ac8af] OFInflate64Stream: Don't subclass OFInflateStream (check-in: [1b5d3ac8af] user: js, branch: trunk, size: 16706) [annotate] [blame] [check-ins using] [diff]
2018-06-06
21:55
[e6df60b73e] part of check-in [fd9801229f] Deflate & LHA: Return buffer to stream on close (check-in: [fd9801229f] user: js, branch: trunk, size: 16626) [annotate] [blame] [check-ins using] [diff]
2018-06-03
23:31
[2f25e4e657] part of check-in [aacb5897a0] Add -[OFObject allocZeroedMemoryWithSize:(count:)] (check-in: [aacb5897a0] user: js, branch: trunk, size: 16394) [annotate] [blame] [check-ins using] [diff]
20:11
[cd213df087] part of check-in [44413ada84] Work around GCC being extremely buggy

This includes GCC thinking uint16_t and uint_fast16_t have a different
signedness and pointers to subclasses of OFStream and pointers to
OFStream being incompatible pointer types. (check-in: [44413ada84] user: js, branch: trunk, size: 16493) [annotate] [blame] [check-ins using] [diff]

18:15
[6dcb1199a3] part of check-in [6cbc2253b8] OFLHAArchive: Support for -lh[4567]- compression (check-in: [6cbc2253b8] user: js, branch: trunk, size: 16503) [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
[f1b2a7dc7f] part of check-in [7e5c81e186] Update copyright notice (check-in: [7e5c81e186] user: js, branch: trunk, size: 18815) [annotate] [blame] [check-ins using] [diff]
2017-10-22
15:05
[4049e67acd] part of check-in [a06354b42a] Make Apple GCC with -Wshadow happy (check-in: [a06354b42a] user: js, branch: trunk, size: 18792) [annotate] [blame] [check-ins using] [diff]
14:09
[93ad641546] part of check-in [31c0f5b89e] Make Apple GCC with -Wshadow happy (check-in: [31c0f5b89e] user: js, branch: 0.90, size: 18764) [annotate] [blame] [check-ins using] [diff]
2017-10-17
00:33
[360414f679] part of check-in [2f4e0df8be] Do not use implicit method return types

Instead, explicitly declare them, as OF_ASSUME_NONNULL_{BEGIN,END} does
not apply to implicit return types. This means that after this commit,
all init methods have a nonnull return type, as they should have. (check-in: [2f4e0df8be] user: js, branch: trunk, size: 18798) [annotate] [blame] [check-ins using] [diff]

2017-07-22
20:50
[fc22c7448d] part of check-in [c8f7b90082] Split OFDataArray into OFData and OFMutableData (check-in: [c8f7b90082] user: js, branch: trunk, size: 18770) [annotate] [blame] [check-ins using] [diff]
2017-06-10
10:00
Added: [f2182fa6d3] part of check-in [f56a50ee50] Rename OFDeflateStream back to OFInflateStream

There is not much point in having a bi-directional stream for Deflate
compression / decompression. (check-in: [f56a50ee50] user: js, branch: trunk, size: 18794) [annotate] [blame] [check-ins using]

2016-05-29
14:48
[4aad919281] part of check-in [3f1d13fa45] OFInflate64Stream: Fix window size (check-in: [3f1d13fa45] user: js, branch: 0.8, size: 18935) [annotate] [blame] [check-ins using] [diff]
13:02
Deleted: Rename OFInflateStream back to OFDeflateStream

The reason for renaming to OFInflateStream was to have one stream for
decompression and one for compression in order to reduce memory usage if
only one of the two is needed, as the ivar layout will be smaller then.
However, it is more consistent with other stream classes to have one
stream that can handle both. The increased memory footprint of having
ivars for compression and decompression can be solved by having a
pointer to those instead. This will not incur any performance penalty,
as the pointer will be dereferenced instead of the ivars, meaning the
overhead is only getting the pointer from the ivars once. (check-in: [134a1121c7] user: js, branch: trunk, size: 0)

2016-05-06
20:54
[c6c9920c31] part of check-in [e840997cc8] Make GCC happy with -Wsign-compare (check-in: [e840997cc8] user: js, branch: trunk, size: 19216) [annotate] [blame] [check-ins using] [diff]
2016-02-21
16:25
[8c624becdc] part of check-in [1eb94a26f6] OFInflateStream: Fix memory leak on early dealloc (check-in: [1eb94a26f6] user: js, branch: trunk, size: 19208) [annotate] [blame] [check-ins using] [diff]
15:37
[c913b5050c] part of check-in [e0b9167693] Make use of C99-style for loops (check-in: [e0b9167693] user: js, branch: trunk, size: 18800) [annotate] [blame] [check-ins using] [diff]
2016-01-05
22:00
[47e2756e95] part of check-in [d3158d091f] (u)int_fast*_t -> (u)int*_t

(U)INT_FAST*_MAX is broken on Android, which makes (u)int_fast*_t
dangerous to use while it does not provide any real speed benefit. (check-in: [d3158d091f] user: js, branch: trunk, size: 18741) [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:41
[91e7a25cd0] part of check-in [2a27cf3000] Update copyright

While at it, also update the mail address. (check-in: [2a27cf3000] user: js, branch: trunk, size: 18862) [annotate] [blame] [check-ins using] [diff]

2015-05-16
20:29
Added: [8adcdb3a6b] part of check-in [2e9336b1ef] Rename OFDeflateStream -> OFInflateStream

It makes more sense to have one class for inflating and one for
deflating instead of having one that does both, as having one that does
both requires more memory per instance when only inflating or deflating
is used. (check-in: [2e9336b1ef] user: js, branch: trunk, size: 18858) [annotate] [blame] [check-ins using]