ObjFW  History of src/OFInflateStream.m of cb0fd980f9d91352

History of file src/OFInflateStream.m at check-in cb0fd980f9d91352

2024-04-29
21:42
Properly hide private symbols file: [ee0deaa4d9] check-in: [f16bccc7b3] user: js, branch: trunk, size: 17343 [annotate] [blame] [check-ins using] [diff]
2024-04-03
02:16
Change license to LGPLv3 only file: [5f2d55b677] check-in: [7413a728a7] user: js, branch: trunk, size: 17329 [annotate] [blame] [check-ins using] [diff]
2024-03-10
23:00
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. file: [533f2c6519] check-in: [f7faf2bfa6] user: js, branch: 1.0, size: 17142 [annotate] [blame] [check-ins using] [diff]

23:00
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. file: [9d9894c2fe] check-in: [a72f602c2a] user: js, branch: trunk, size: 17121 [annotate] [blame] [check-ins using] [diff]

2024-02-03
11:41
Update copyright file: [7726e7ab7e] check-in: [7324ec8590] user: js, branch: 1.0, size: 17089 [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
Update copyright file: [6ae6dfa239] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 17068 [annotate] [blame] [check-ins using] [diff]
2023-10-15
12:32
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. file: [fd902a590d] check-in: [a61e0594b4] user: js, branch: trunk, size: 17068 [annotate] [blame] [check-ins using] [diff]

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

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

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

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

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

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

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

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

2020-01-14
00:16
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. file: [3cf4fd3893] check-in: [3b43d51006] user: js, branch: trunk, size: 16890 [annotate] [blame] [check-ins using] [diff]

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

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

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

18:15
OFLHAArchive: Support for -lh[4567]- compression file: [6dcb1199a3] check-in: [6cbc2253b8] user: js, branch: trunk, size: 16503 [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
Update copyright notice file: [f1b2a7dc7f] check-in: [7e5c81e186] user: js, branch: trunk, size: 18815 [annotate] [blame] [check-ins using] [diff]
2017-10-22
15:05
Make Apple GCC with -Wshadow happy file: [4049e67acd] check-in: [a06354b42a] user: js, branch: trunk, size: 18792 [annotate] [blame] [check-ins using] [diff]
14:09
Make Apple GCC with -Wshadow happy file: [93ad641546] check-in: [31c0f5b89e] user: js, branch: 0.90, size: 18764 [annotate] [blame] [check-ins using] [diff]
2017-10-17
00:33
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. file: [360414f679] check-in: [2f4e0df8be] user: js, branch: trunk, size: 18798 [annotate] [blame] [check-ins using] [diff]

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

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

2016-05-29
14:48
OFInflate64Stream: Fix window size file: [4aad919281] 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
Make GCC happy with -Wsign-compare file: [c6c9920c31] check-in: [e840997cc8] user: js, branch: trunk, size: 19216 [annotate] [blame] [check-ins using] [diff]
2016-02-21
16:25
OFInflateStream: Fix memory leak on early dealloc file: [8c624becdc] check-in: [1eb94a26f6] user: js, branch: trunk, size: 19208 [annotate] [blame] [check-ins using] [diff]
15:37
Make use of C99-style for loops file: [c913b5050c] check-in: [e0b9167693] user: js, branch: trunk, size: 18800 [annotate] [blame] [check-ins using] [diff]
2016-01-05
22:00
(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. file: [47e2756e95] check-in: [d3158d091f] user: js, branch: trunk, size: 18741 [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:41
Update copyright

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

2015-05-16
20:29
Added: 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. file: [8adcdb3a6b] check-in: [2e9336b1ef] user: js, branch: trunk, size: 18858 [annotate] [blame] [check-ins using]