ObjFW  History of src/OFSet.m of 840ef61f18970636

History of the file that is called src/OFSet.m at check-in 840ef61f18970636

2024-04-03
02:16
[73f0a1068f] part of check-in [7413a728a7] Change license to LGPLv3 only (check-in: [7413a728a7] user: js, branch: trunk, size: 9273) [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
[13b08a9492] part of check-in [26ddd2e4e4] Update copyright (check-in: [26ddd2e4e4] user: js, branch: trunk, size: 9065) [annotate] [blame] [check-ins using] [diff]
2023-08-29
12:16
[a482207723] part of check-in [b5e3f01a59] Fix compilation with Apple GCC 4.0.1 & 4.2.1 (check-in: [b5e3f01a59] user: js, branch: trunk, size: 9065) [annotate] [blame] [check-ins using] [diff]
2023-08-13
22:02
[8d2f3f00f2] part of check-in [d0205355f5] OFSet: Add designated initializers (check-in: [d0205355f5] user: js, branch: trunk, size: 9035) [annotate] [blame] [check-ins using] [diff]
2023-08-09
10:09
[cf7d351eda] part of check-in [281b494de4] More consistency in naming of private classes (check-in: [281b494de4] user: js, branch: trunk, size: 7192) [annotate] [blame] [check-ins using] [diff]
09:08
[3d86fbe75e] part of check-in [36310f6263] Add OF_SINGLETON_METHODS (check-in: [36310f6263] user: js, branch: trunk, size: 7192) [annotate] [blame] [check-ins using] [diff]
2023-08-08
15:32
[4cf2dc29e8] part of check-in [a6f520157a] A few minor cleanups (check-in: [a6f520157a] user: js, branch: trunk, size: 7325) [annotate] [blame] [check-ins using] [diff]
2023-07-15
23:44
[bebf07d610] part of check-in [27d8eb922d] Never set mutationsPtr to self

The Apple runtime can store the retain count in isa, so
retaining/releasing an object would suddenly make it seem like it was
mutated. (check-in: [27d8eb922d] user: js, branch: trunk, size: 7177) [annotate] [blame] [check-ins using] [diff]

2023-04-10
19:22
[a5c8b76a0d] part of check-in [6ce0093f8d] Remove OFSerialization

While the idea sounds nice that the tag name is the class, this means the
serialization includes whether something is mutable or immutable. This means
doing as much as making something immutable changes the serialization, which
can then cause issues after being deserialized. (check-in: [6ce0093f8d] user: js, branch: trunk, size: 7145) [annotate] [blame] [check-ins using] [diff]

2023-01-06
09:04
[c24561f595] part of check-in [8939cbdb52] Update copyright (check-in: [8939cbdb52] user: js, branch: trunk, size: 8028) [annotate] [blame] [check-ins using] [diff]
2022-06-12
06:27
[c2dcb9f429] part of check-in [6228b691b5] Remove a few useless methods (check-in: [6228b691b5] user: js, branch: trunk, size: 8028) [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
[deacc26990] part of check-in [1a86b8175b] Update copyright (check-in: [1a86b8175b] user: js, branch: trunk, size: 8350) [annotate] [blame] [check-ins using] [diff]
2021-04-19
21:54
[a3dd281791] part of check-in [458420998c] Rename a few more constants (check-in: [458420998c] user: js, branch: new-naming-convention, size: 8350) [annotate] [blame] [check-ins using] [diff]
2021-04-17
03:21
[b7d60ea604] part of check-in [c4e0e56fa3] Rename all blocks (check-in: [c4e0e56fa3] user: js, branch: new-naming-convention, size: 8354) [annotate] [blame] [check-ins using] [diff]
02:43
[a8859ecef5] part of check-in [ed3b07591c] Rename of_fast_enumeration_state_t (check-in: [ed3b07591c] user: js, branch: new-naming-convention, size: 8364) [annotate] [blame] [check-ins using] [diff]
2021-03-07
20:25
[f23395a631] part of check-in [1b82d3bf4f] *.m: Fold methods into one line where it fits (check-in: [1b82d3bf4f] user: js, branch: trunk, size: 8369) [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
[27e6d4b43c] part of check-in [374e1a1bfa] Update copyright (check-in: [374e1a1bfa] user: js, branch: trunk, size: 8449) [annotate] [blame] [check-ins using] [diff]
2020-10-10
14:27
[fd18f62182] part of check-in [aeb403a1ed] OFObject: Change type of -[hash] to unsigned long

The internal hash is still 32 bit in most places, but this way, it is at
least not baked into the API and ABI and can be upgraded later, should
that ever be necessary. (check-in: [aeb403a1ed] user: js, branch: trunk, size: 8538) [annotate] [blame] [check-ins using] [diff]

2020-01-02
01:51
[e3c9e370a2] part of check-in [c7f0229795] Update copyright (check-in: [c7f0229795] user: js, branch: trunk, size: 8528) [annotate] [blame] [check-ins using] [diff]
2019-06-20
23:47
[62481ad29d] part of check-in [13864f512c] Avoid retaining enumerator during fast enumeration

This avoids leaking the enumerator when terminating the fast enumeration
early. (check-in: [13864f512c] user: js, branch: trunk, size: 8525) [annotate] [blame] [check-ins using] [diff]

23:45
[806937cb0f] part of check-in [f8b53e2f6b] OFSet: Add default method for fast enumeration (check-in: [f8b53e2f6b] user: js, branch: trunk, size: 8702) [annotate] [blame] [check-ins using] [diff]
2019-06-17
02:33
[9b44169159] part of check-in [17d57e01ff] Remove underscores from class names (check-in: [17d57e01ff] user: js, branch: trunk, size: 8112) [annotate] [blame] [check-ins using] [diff]
2019-03-23
22:03
[a05b34b142] part of check-in [d7824704f9] Add -[valueForKeyPath:] / -[setValue:forKeyPath:] (check-in: [d7824704f9] user: js, branch: trunk, size: 8130) [annotate] [blame] [check-ins using] [diff]
2019-03-08
00:35
[136b012e98] part of check-in [bceb7ed4c9] Use dot syntax (check-in: [bceb7ed4c9] user: js, branch: trunk, size: 8533) [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
[dff1ba0f37] part of check-in [0509d7a844] Update copyright (check-in: [0509d7a844] user: js, branch: trunk, size: 8547) [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
[6c38818afa] part of check-in [7e5c81e186] Update copyright notice (check-in: [7e5c81e186] user: js, branch: trunk, size: 8541) [annotate] [blame] [check-ins using] [diff]
2017-11-20
22:35
[95347a9390] part of check-in [7c8ac46f53] OFSetTests: Test all implementations (check-in: [7c8ac46f53] user: js, branch: trunk, size: 8518) [annotate] [blame] [check-ins using] [diff]
2017-11-11
23:27
[e30f25fb57] part of check-in [526feacebc] Small optimization for -[isEqual:] (check-in: [526feacebc] user: js, branch: trunk, size: 8518) [annotate] [blame] [check-ins using] [diff]
2017-11-05
18:25
[a6954089a6] part of check-in [0a4565fb0f] Use -[isMemberOfClass:] instead of object_getClass (check-in: [0a4565fb0f] user: js, branch: trunk, size: 8501) [annotate] [blame] [check-ins using] [diff]
2017-10-17
00:33
[3a024855e7] 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: 8502) [annotate] [blame] [check-ins using] [diff]

2017-10-11
20:53
[9a3d14535d] part of check-in [00476e4430] Fix shadowed variables and enable -Wshadow (check-in: [00476e4430] user: js, branch: trunk, size: 8260) [annotate] [blame] [check-ins using] [diff]
2017-09-27
22:35
[876ac85821] part of check-in [697e3ecbf7] More nullability fixes (check-in: [697e3ecbf7] user: js, branch: trunk, size: 8281) [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
[62db370766] part of check-in [4af49a13c3] Small code style change

Casts are now written like types in variable declarations. (check-in: [4af49a13c3] user: js, branch: trunk, size: 8326) [annotate] [blame] [check-ins using] [diff]

2017-01-09
17:36
[4282ae8fc5] part of check-in [44f45c2e35] Update copyright

Forgot to add 2017, even though I already did quite some changes in
2017. (check-in: [44f45c2e35] user: js, branch: trunk, size: 8298) [annotate] [blame] [check-ins using] [diff]

2016-09-12
00:27
[5ab931318f] part of check-in [13f4c6c678] Add OF_DEALLOC_UNSUPPORTED macro (check-in: [13f4c6c678] user: js, branch: trunk, size: 8292) [annotate] [blame] [check-ins using] [diff]
2016-06-05
20:37
[44df76d02e] part of check-in [ef8d57bd4e] Implement Key Value Coding for OFSet

If the key starts with an @, the @ is stripped and the super method is
called. Otherwise, this returns the value for all objects / sets the
value for all objects. (check-in: [ef8d57bd4e] user: js, branch: trunk, size: 8348) [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
[4fe63f90c7] part of check-in [cec0f072f8] Update copyright

While at it, also update the mail address. (check-in: [cec0f072f8] user: js, branch: 0.8, size: 8219) [annotate] [blame] [check-ins using] [diff]

00:41
[704c371206] part of check-in [2a27cf3000] Update copyright

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

2015-11-29
14:02
[c1fc0fd847] part of check-in [6b13727ce0] Make use of fast enumeration

Now that we require GCC >= 4.6 anyway, there's no more reason to not use
it anymore. (check-in: [6b13727ce0] user: js, branch: trunk, size: 7393) [annotate] [blame] [check-ins using] [diff]

2015-01-03
20:57
[2b7acb7d08] part of check-in [cfd374b906] Update copyright (check-in: [cfd374b906] user: js, branch: trunk, size: 8215) [annotate] [blame] [check-ins using] [diff]
2014-06-21
21:43
[c491517e92] part of check-in [13ee56edf3] Move all macros from OFObject.h to macros.h

This means that OFObject.h imports macros.h now, making it unnecessary
to manually import macros.h in almost every file. And while at it, also
import autorelease.h in OFObject.h, so that this doesn't need to be
manually imported in almost every file as well. (check-in: [13ee56edf3] user: js, branch: trunk, size: 8209) [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
[75c0bccec2] part of check-in [3b97fc3cd9] Update copyright. (check-in: [3b97fc3cd9] user: js, branch: trunk, size: 8253) [annotate] [blame] [check-ins using] [diff]
2013-11-23
01:27
[a47e39e0ec] part of check-in [6e19bd47ee] Add OF_UNRECOGNIZED_SELECTOR. (check-in: [6e19bd47ee] user: js, branch: trunk, size: 8247) [annotate] [blame] [check-ins using] [diff]
01:12
[6f0ac7c26a] part of check-in [35dafd5c57] Add OF_INVALID_INIT_METHOD. (check-in: [35dafd5c57] user: js, branch: trunk, size: 8367) [annotate] [blame] [check-ins using] [diff]
2013-05-13
16:21
[4ad4b1bea6] part of check-in [22bcd14a08] Fix missing import. (check-in: [22bcd14a08] user: js, branch: trunk, size: 8788) [annotate] [blame] [check-ins using] [diff]
2013-05-04
12:04
[e875ac7884] part of check-in [d1a7509701] OFSet: Add -[allObjects] and -[anyObject]. (check-in: [d1a7509701] user: js, branch: trunk, size: 8768) [annotate] [blame] [check-ins using] [diff]
2013-03-04
17:20
[35aae4e27a] part of check-in [c5ef582958] Replace BOOL with bool.

The only places where BOOL is left are those where they are required by
the ABI. (check-in: [c5ef582958] user: js, branch: trunk, size: 8395) [annotate] [blame] [check-ins using] [diff]

2013-02-05
22:24
[c4a3756934] part of check-in [737a82e1a4] Move abort() to make old GCCs happy. (check-in: [737a82e1a4] user: js, branch: trunk, size: 8378) [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
[1744fbbf3e] part of check-in [813c00ccf0] Update copyright. (check-in: [813c00ccf0] user: js, branch: trunk, size: 8378) [annotate] [blame] [check-ins using] [diff]
2012-12-22
15:37
[fdc84a25fe] part of check-in [917ce5754c] Add -[doesNotRecognizeSelector:]. (check-in: [917ce5754c] user: js, branch: trunk, size: 8372) [annotate] [blame] [check-ins using] [diff]
2012-12-12
22:02
[f4c7729752] part of check-in [12fef9798a] OFSet: Add a few new methods to create new sets. (check-in: [12fef9798a] user: js, branch: trunk, size: 8694) [annotate] [blame] [check-ins using] [diff]
2012-11-12
11:24
[da395819f0] part of check-in [f5c4220251] Check more arguments for nil. (check-in: [f5c4220251] user: js, branch: trunk, size: 8183) [annotate] [blame] [check-ins using] [diff]
2012-10-21
22:12
[64a43ff987] part of check-in [fcade8da38] Make GCC 4.4 happy. (check-in: [fcade8da38] user: js, branch: trunk, size: 8157) [annotate] [blame] [check-ins using] [diff]
2012-10-09
15:07
[ec5ebbb3c2] part of check-in [fb515e8e24] Make use of instancetype. (check-in: [fb515e8e24] user: js, branch: trunk, size: 8174) [annotate] [blame] [check-ins using] [diff]
2012-08-10
20:08
[9be4537608] part of check-in [1255f3a11a] Directly use the runtime's autorelease pools.

This greatly improves performance, as it gets rid of the overhead of
OFAutoreleasePool. (check-in: [1255f3a11a] user: js, branch: trunk, size: 8104) [annotate] [blame] [check-ins using] [diff]

2012-07-12
01:28
[7c97ea2061] part of check-in [8892ae9fcc] Don't access isa directly. (check-in: [8892ae9fcc] user: js, branch: trunk, size: 8123) [annotate] [blame] [check-ins using] [diff]
2012-03-29
07:57
[fdc2275c3d] part of check-in [89d53f2a9a] Add a few "const" where they make sense. (check-in: [89d53f2a9a] user: js, branch: trunk, size: 7989) [annotate] [blame] [check-ins using] [diff]
2012-03-28
09:25
[98a694fc77] part of check-in [5e98e61531] Add +[OFSet setWithObjects:count:]. (check-in: [5e98e61531] user: js, branch: trunk, size: 7971) [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
[0733c68e31] part of check-in [ce70e17b38] Update copyright. (check-in: [ce70e17b38] user: js, branch: trunk, size: 7496) [annotate] [blame] [check-ins using] [diff]
2011-10-31
21:18
[f6015b2f71] part of check-in [6bdb2e4b01] Move placeholder interfaces from headers to implementation files.
This way they are not public anymore.
(check-in: [6bdb2e4b01] user: js, branch: trunk, size: 7490) [annotate] [blame] [check-ins using] [diff]
2011-09-22
23:25
[f6a72ae961] part of check-in [e1e7ffa903] Exceptions are now autoreleased.

This is safe as an "exception loop" can't happen, since if allocating
an exception fails, it throws an OFAllocFailedException which is
preallocated and can always be thrown.

So, the worst case would be that an autorelease of an exception fails,
triggering an OFOutOfMemoryException for which there is no memory,
resulting in an OFAllocFailedException to be thrown. (check-in: [e1e7ffa903] user: js, branch: trunk, size: 7448) [annotate] [blame] [check-ins using] [diff]

2011-09-13
00:09
[6bb947808b] part of check-in [9b2ca72edb] Fix a warning when compiling with clang. (check-in: [9b2ca72edb] user: js, branch: trunk, size: 7398) [annotate] [blame] [check-ins using] [diff]
2011-09-10
17:36
[3e40ae1337] part of check-in [ee77d91252] We can safely assume fast enumeration if we have blocks. (check-in: [ee77d91252] user: js, branch: trunk, size: 7393) [annotate] [blame] [check-ins using] [diff]
2011-09-09
13:35
[12cfe037e0] part of check-in [798d9e6320] [pool release] can never throw by convention now. (check-in: [798d9e6320] user: js, branch: trunk, size: 7472) [annotate] [blame] [check-ins using] [diff]
2011-09-01
18:08
[61fa40e270] part of check-in [8d5ca84bc5] Add serialization and deserialization for OFSet and OFCountedSet. (check-in: [8d5ca84bc5] user: js, branch: trunk, size: 7499) [annotate] [blame] [check-ins using] [diff]
2011-08-31
16:01
[2a40664f4e] part of check-in [66b12bb66f] Make OFSet and OFCountedSet abstract classes. (check-in: [66b12bb66f] user: js, branch: trunk, size: 6391) [annotate] [blame] [check-ins using] [diff]
2011-08-21
11:03
[69cf3066e2] part of check-in [c0098f89fe] Make OFDictionary an abstract class. (check-in: [c0098f89fe] user: js, branch: trunk, size: 5930) [annotate] [blame] [check-ins using] [diff]
2011-08-07
16:57
[ac40594a2c] part of check-in [927dbf6e7d] Add -[makeImmutable] to all mutable classes and use it. (check-in: [927dbf6e7d] user: js, branch: trunk, size: 5903) [annotate] [blame] [check-ins using] [diff]
2011-07-26
18:12
[b1d260547d] part of check-in [5207c4ea4d] Prepare OFSet and OFMutableSet for OFCountedSet. (check-in: [5207c4ea4d] user: js, branch: trunk, size: 6338) [annotate] [blame] [check-ins using] [diff]
2011-07-22
18:30
[055b4111d5] part of check-in [e287e086c2] Nicer fast enumeration for OFSet. (check-in: [e287e086c2] user: js, branch: trunk, size: 5805) [annotate] [blame] [check-ins using] [diff]
2011-07-21
23:56
[89818a2387] part of check-in [3e6766ac10] Add -[enumerateObjectsUsingBlock:] and -[filteredSetUsingBlock:]. (check-in: [3e6766ac10] user: js, branch: trunk, size: 6336) [annotate] [blame] [check-ins using] [diff]
2011-07-19
23:04
[a5a149b673] part of check-in [cbf0b4dd91] Add fast enumeration to OFSet. (check-in: [cbf0b4dd91] user: js, branch: trunk, size: 5622) [annotate] [blame] [check-ins using] [diff]
2011-07-18
22:53
Added: [aa96a6ecd5] part of check-in [8df328d503] Add OFSet and OFMutableSet. (check-in: [8df328d503] user: js, branch: trunk, size: 4854) [annotate] [blame] [check-ins using]