ObjFW  History of src/OFList.h of b8052b3f658161ee

History of file src/OFList.h at check-in b8052b3f658161ee

2024-06-17
21:08
Always use <ObjFW/ObjFW.h> in documentation file: [094deb7ff9] check-in: [164f2fb4bf] user: js, branch: trunk, size: 6095 [annotate] [blame] [check-ins using] [diff]
2024-04-03
02:16
Change license to LGPLv3 only file: [9d597032f3] check-in: [7413a728a7] user: js, branch: trunk, size: 6097 [annotate] [blame] [check-ins using] [diff]
2024-02-03
08:53
Fix typos in documentation found by spell checker file: [4f099b2699] check-in: [19f3948a26] user: js, branch: 1.0, size: 5889 [annotate] [blame] [check-ins using] [diff]
08:49
Fix typos in documentation found by spell checker file: [cf0e346436] check-in: [f97dc452b1] user: js, branch: trunk, size: 5889 [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
Update copyright file: [72f0b22ce8] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 5885 [annotate] [blame] [check-ins using] [diff]
2023-04-10
19:22
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. file: [e9e426b5c4] check-in: [6ce0093f8d] user: js, branch: trunk, size: 5885 [annotate] [blame] [check-ins using] [diff]

2023-01-06
09:04
Update copyright file: [58011ed2c8] check-in: [8939cbdb52] user: js, branch: trunk, size: 5934 [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
Update copyright file: [f2ae387af6] check-in: [1a86b8175b] user: js, branch: trunk, size: 5934 [annotate] [blame] [check-ins using] [diff]
2021-05-09
14:45
Merge trunk into branch "amiga-library"

All necessary changes to adjust for the changes made in trunk are
included in the merge commit. file: [e9b48b38c5] check-in: [3c88df0ce4] user: js, branch: amiga-library, size: 5934 [annotate] [blame] [check-ins using] [diff]

2021-04-29
23:30
Disable Clang's incorrect -Wdocumentation warning file: [52cea62659] check-in: [026f74d7a7] user: js, branch: trunk, size: 5884 [annotate] [blame] [check-ins using] [diff]
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: [d971682e08] check-in: [2fcf5a3052] user: js, branch: trunk, size: 5581 [annotate] [blame] [check-ins using] [diff]

22:56
Fix Doxygen warnings file: [17d81c5b14] check-in: [5e985aa805] user: js, branch: trunk, size: 5557 [annotate] [blame] [check-ins using] [diff]
2021-04-25
16:48
Make OFListItem opaque file: [0e994cc065] check-in: [8573ef86c6] user: js, branch: trunk, size: 5567 [annotate] [blame] [check-ins using] [diff]
2021-04-17
05:45
Rename all types in OFList file: [0c075514d1] check-in: [5b57beeba6] user: js, branch: new-naming-convention, size: 4947 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
Update copyright file: [36d06c646e] check-in: [374e1a1bfa] user: js, branch: trunk, size: 5142 [annotate] [blame] [check-ins using] [diff]
2020-10-03
11:35
Use /** */ instead of /*! */ for documentation file: [75efc796d9] check-in: [163a4a5a2e] user: js, branch: trunk, size: 5231 [annotate] [blame] [check-ins using] [diff]
2020-09-26
21:58
Don't require __COUNTER__ for OF_RESERVE_IVARS

__COUNTER__ does not exist in GCC 4.2, and Apple GCC 4.2 is still the
newest compiler available for macOS 10.5. file: [e1e888bcda] check-in: [ef614a225d] user: js, branch: trunk, size: 5231 [annotate] [blame] [check-ins using] [diff]

2020-01-02
01:51
Update copyright file: [154ed652ed] check-in: [c7f0229795] user: js, branch: trunk, size: 5223 [annotate] [blame] [check-ins using] [diff]
2019-09-29
20:53
Reduce ivar scopes file: [4ff6f82ebc] check-in: [e0a330b377] user: js, branch: trunk, size: 5220 [annotate] [blame] [check-ins using] [diff]
19:35
Either restrict subclassing or reserve ivar space

This allows ABI stability with the fragile ABI. file: [c1be030244] check-in: [496695d778] user: js, branch: trunk, size: 5495 [annotate] [blame] [check-ins using] [diff]

2019-01-03
19:13
Update copyright file: [6b57b93ef4] check-in: [0509d7a844] user: js, branch: trunk, size: 5474 [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
Update copyright notice file: [6271761707] check-in: [7e5c81e186] user: js, branch: trunk, size: 5468 [annotate] [blame] [check-ins using] [diff]
2017-11-18
18:50
Documentation: Use @brief for all properties file: [a5f03851fb] check-in: [cc3ad3ddd3] user: js, branch: trunk, size: 5445 [annotate] [blame] [check-ins using] [diff]
2017-10-29
21:58
Convert methods to properties where appropriate

This improves Swift compatibility. file: [767ebca506] check-in: [f3ccf14461] user: js, branch: trunk, size: 5417 [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: [9a9431e042] check-in: [2f4e0df8be] user: js, branch: trunk, size: 5692 [annotate] [blame] [check-ins using] [diff]

2017-09-28
23:02
Enable -Wnullable-to-nonnull-conversion and adjust file: [2bcd2e7a45] check-in: [2de9660312] user: js, branch: trunk, size: 5679 [annotate] [blame] [check-ins using] [diff]
2017-09-26
21:53
Many nullability fixes file: [ebae885803] check-in: [52011fbfd6] user: js, branch: trunk, size: 5697 [annotate] [blame] [check-ins using] [diff]
00:02
Fix a few missing nullable file: [56e2b65e10] check-in: [3da9426ea5] user: js, branch: trunk, size: 5663 [annotate] [blame] [check-ins using] [diff]
2017-06-05
18:56
Doxyfile: Add missing defines file: [156b26bb39] check-in: [4b6dfe02f2] user: js, branch: trunk, size: 5634 [annotate] [blame] [check-ins using] [diff]
2017-05-13
16:29
Also use nonatomic for non-object properties file: [c326019649] check-in: [f663d40cbd] user: js, branch: trunk, size: 5646 [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
Small code style change

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

2017-01-09
17:36
Update copyright

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

2016-01-03
00:43
Update copyright

While at it, also update the mail address. file: [781146c205] check-in: [cec0f072f8] user: js, branch: 0.8, size: 5843 [annotate] [blame] [check-ins using] [diff]

00:41
Update copyright

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

2015-11-29
11:43
Make properties a requirement and clean up code

This increases the required GCC version from 4.0 to 4.6 (exception:
Apple GCC, which already supports this with >= 4.0 starting with OS X
10.5). Since even GCC 4.6 is really old by now, there is no point in
still supporting something even older and making the code ugly because
of that. While some hardware and OS support was dropped from GCC 4.6
compared to GCC 4.0, there is nothing in there that would be an
interesting target with the exception of BeOS maybe - but a port to BeOS
can also be achieved using the Haiku support. The other dropped OSes are
mostly old versions of OSes while newer ones are still being supported
(and those newer versions of those OSes still support the same
hardware). file: [1f21a78f7e] check-in: [48980f2297] user: js, branch: trunk, size: 5595 [annotate] [blame] [check-ins using] [diff]

2015-11-28
19:47
Minor documentation improvements file: [1c84feb5eb] check-in: [650b4be224] user: js, branch: trunk, size: 5847 [annotate] [blame] [check-ins using] [diff]
2015-06-17
22:11
Add OF_NULLABLE_PROPERTY

This is necessary to make GCC (>= 4.6 and Apple GCC) happy as they don't
like the list of property attributes ending in a comma. file: [2c4a93e677] check-in: [80e1a9655b] user: js, branch: trunk, size: 5839 [annotate] [blame] [check-ins using] [diff]

2015-06-14
10:45
Add OF_NONNULL / OF_NULLABLE and use that instead

Using __nonnull directly doesn't work on systems using glibc, as glibc
defines __nonnull as a parameterized define. While this does not fix the
problem of Clang introducing __nonnull even though it conflicts with
glibc, this at least means it's possible again to compile things with
versions of Clang that don't support __nonnull on systems with glibc. file: [5074e7258e] check-in: [b7097a67b6] user: js, branch: trunk, size: 5817 [annotate] [blame] [check-ins using] [diff]

2015-06-13
22:26
Add support for and use the new nullability file: [badebf99e1] check-in: [9e76144ef8] user: js, branch: trunk, size: 5817 [annotate] [blame] [check-ins using] [diff]
2015-06-12
23:59
Add support for and use the new ObjC generics file: [41ad30e5c0] check-in: [5329fe7c1a] user: js, branch: trunk, size: 5695 [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
Update copyright file: [f98a3d7c30] check-in: [cfd374b906] user: js, branch: trunk, size: 4937 [annotate] [blame] [check-ins using] [diff]
2014-11-16
21:35
Fix two typos in documentation file: [102c06c2e5] check-in: [4c2dbb263c] user: js, branch: trunk, size: 4931 [annotate] [blame] [check-ins using] [diff]
2014-02-18
18:50
Documentation: Show correct imports file: [84a91cc02c] check-in: [246cfe0807] user: js, branch: trunk, size: 4931 [annotate] [blame] [check-ins using] [diff]
2014-01-04
00:24
Update copyright. file: [0d8079f77c] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 4832 [annotate] [blame] [check-ins using] [diff]
2013-03-04
17:20
Replace BOOL with bool.

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

2013-02-12
18:22
Prefix all ivars with an underscore. file: [723cbad907] check-in: [e40729d406] user: js, branch: trunk, size: 4826 [annotate] [blame] [check-ins using] [diff]
2013-01-14
19:02
Documentation improvements. file: [f54b09d95a] check-in: [30ab311006] user: js, branch: trunk, size: 4818 [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
Update copyright. file: [a33374dc7f] check-in: [813c00ccf0] user: js, branch: trunk, size: 4802 [annotate] [blame] [check-ins using] [diff]
2012-10-28
12:38
Switch to a headerdoc-compatible doc format. file: [f7c36c6b33] check-in: [1ad9565253] user: js, branch: trunk, size: 4796 [annotate] [blame] [check-ins using] [diff]
2012-10-09
15:07
Make use of instancetype. file: [d4ed52a4cc] check-in: [fb515e8e24] user: js, branch: trunk, size: 4796 [annotate] [blame] [check-ins using] [diff]
2012-09-11
12:10
Add -[OFList removeAllObjects]. file: [2db9ff8a81] check-in: [2b5d03d8ea] user: js, branch: trunk, size: 4782 [annotate] [blame] [check-ins using] [diff]
2012-09-09
14:36
Add OFSortedList. file: [1e7516e1b8] check-in: [c0f28cf861] user: js, branch: trunk, size: 4702 [annotate] [blame] [check-ins using] [diff]
2012-08-19
21:27
Add more ARC type qualifiers. file: [edc02fcf57] check-in: [bab9dd49fe] user: js, branch: trunk, size: 4702 [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
Update copyright. file: [04386cad3b] check-in: [ce70e17b38] user: js, branch: trunk, size: 4684 [annotate] [blame] [check-ins using] [diff]
2011-07-19
23:28
Make OFFastEnumeration part of OFCollection. file: [7dc972a683] check-in: [ab71981cda] user: js, branch: trunk, size: 4678 [annotate] [blame] [check-ins using] [diff]
2011-07-17
16:38
Remove -[containsObjectIdenticalTo:] from OFCopying.

It is still implemented by all classes implementing OFCollection so far,
but new classes are not required to implement it anymore.

This is required to add OFCountedSet later, which can't support it. file: [c4c264f1d5] check-in: [8ff55bf218] user: js, branch: trunk, size: 4701 [annotate] [blame] [check-ins using] [diff]

2011-05-22
00:44
Add -[firstObject] and -[lastObject] to OFList. file: [7e6619efad] check-in: [fe0aa66897] user: js, branch: trunk, size: 4403 [annotate] [blame] [check-ins using] [diff]
2011-05-08
20:44
Add support for serialization to OFList. file: [2f5f6769f6] check-in: [046abd074d] user: js, branch: trunk, size: 3952 [annotate] [blame] [check-ins using] [diff]
17:19
More documentation improvements. file: [36f81a72ce] check-in: [242b1ccd71] user: js, branch: trunk, size: 3903 [annotate] [blame] [check-ins using] [diff]
2011-04-22
20:19
More style improvements. file: [e94ed80ca6] check-in: [e76a7f52c1] user: js, branch: trunk, size: 3706 [annotate] [blame] [check-ins using] [diff]
2011-03-27
17:51
Pass the causing object for OFEnumerationMutationExceptions. file: [3cd365a47f] check-in: [f072e1a338] user: js, branch: trunk, size: 3660 [annotate] [blame] [check-ins using] [diff]
2011-01-01
20:19
Change license. file: [5d36c42d1f] check-in: [da6b3d26cb] user: js, branch: trunk, size: 3688 [annotate] [blame] [check-ins using] [diff]
2010-12-10
11:21
Documentation fixes. file: [4d47514ce0] check-in: [fada60d54c] user: js, branch: trunk, size: 3432 [annotate] [blame] [check-ins using] [diff]
2010-09-06
13:47
Make OFList conform to OFCollection and OFFastEnumeration protocol. file: [c32fd13d67] check-in: [2cb79baae4] user: js, branch: trunk, size: 3453 [annotate] [blame] [check-ins using] [diff]
2010-09-05
23:19
Replace OFObject* with id in many places.

We assume now that every object understands retain, release, etc. so
that we can weaken the type from OFObject* to id. This makes it
possible to use different root object classes. file: [12c31cb041] check-in: [e2b06423e0] user: js, branch: trunk, size: 3148 [annotate] [blame] [check-ins using] [diff]

2010-04-23
13:10
Nicer OFList API. file: [44738d18b3] check-in: [0ea8e1ef09] user: js, branch: trunk, size: 3176 [annotate] [blame] [check-ins using] [diff]
2010-04-17
23:04
Add properties to interfaces. Only used if supported by the compiler. file: [ed49261cf1] check-in: [f3e7291fad] user: js, branch: trunk, size: 3070 [annotate] [blame] [check-ins using] [diff]
15:46
Don't return self where not necessary, return void or something useful. file: [498c3c68bc] check-in: [062a052b50] user: js, branch: trunk, size: 2910 [annotate] [blame] [check-ins using] [diff]
2010-02-19
16:36
Update copyright. file: [17a82cf29c] check-in: [42886185fd] user: js, branch: trunk, size: 2904 [annotate] [blame] [check-ins using] [diff]
2010-02-11
14:58
Documentation improvements. file: [e8baae6cab] check-in: [72caeab860] user: js, branch: trunk, size: 2904 [annotate] [blame] [check-ins using] [diff]
2010-02-10
20:30
Documentation improvements. file: [dd11b8683b] check-in: [6a65366467] user: js, branch: trunk, size: 2872 [annotate] [blame] [check-ins using] [diff]
2009-12-02
20:02
Introduce some consistency when to use OFObject* and when to use id. file: [d1b99d4de4] check-in: [c7ab3a46d1] user: js, branch: trunk, size: 2872 [annotate] [blame] [check-ins using] [diff]
2009-11-09
22:45
Rename libobjfw to ObjFW. file: [4d2ba9daa2] check-in: [a3cc34b139] user: js, branch: trunk, size: 2844 [annotate] [blame] [check-ins using] [diff]
2009-09-16
16:22
Rework OFAutoreleasePool and remove now unnecessary hack from OFList. file: [677855ce18] check-in: [a99f512a4a] user: js, branch: trunk, size: 2847 [annotate] [blame] [check-ins using] [diff]
2009-09-08
16:06
New OFDictionary implementation and removal of a hack in OFList.

The new implementation is easier to use as it does automatic resizing,
but therefore it's not realtime-capable anymore. The new implementation
should also be a little bit faster.

I decided to change the implementation as only very few need a
realtime-capable dictionary and those few will most likely write their
own implementation for their specific case anyway.

As the new implementation no longer uses OFList, this also made it
possible to remove a hack from OFList. file: [d42967ddf0] check-in: [bbf1f79b8f] user: js, branch: trunk, size: 3047 [annotate] [blame] [check-ins using] [diff]

2009-08-27
20:40
Cache the number of items in an OFList. file: [03977d0bbb] check-in: [768108a960] user: js, branch: trunk, size: 3507 [annotate] [blame] [check-ins using] [diff]
2009-08-26
19:40
Improve documentation. file: [493af3623a] check-in: [146db53e4a] user: js, branch: trunk, size: 3606 [annotate] [blame] [check-ins using] [diff]
2009-06-29
12:33
Changes to OFDictionary, OFIterator and OFList - see details.

OFDictionary:
* More optimized way to internally store the data.
* Faster resizing of dictionaries (no rehashing anymore).

OFIterator:
* Return a key/object pair rather than first the key and then the
object.

OFList:
* Support for list objects with a different size so you can have your
own list object structs. file: [fdd2b6ed1c] check-in: [24ecf55297] user: js, branch: trunk, size: 3309 [annotate] [blame] [check-ins using] [diff]

2009-05-20
19:59
Implement OFCopying protocol for OFList. file: [8727a6856e] check-in: [5d190947a7] user: js, branch: trunk, size: 2848 [annotate] [blame] [check-ins using] [diff]
2009-05-19
16:51
Add - isEqual: for OFList. file: [ea241d3479] check-in: [7f7e9715e1] user: js, branch: trunk, size: 2836 [annotate] [blame] [check-ins using] [diff]
2009-05-04
17:54
Add - items to OFList. file: [01b97195c0] check-in: [59ab431af4] user: js, branch: trunk, size: 2836 [annotate] [blame] [check-ins using] [diff]
2009-03-08
16:06
Rename initWithRetainAndReleaseEnabled to initWithoutRetainAndRelease. file: [08eab0576a] check-in: [43e4d25ca7] user: js, branch: trunk, size: 2650 [annotate] [blame] [check-ins using] [diff]
2009-01-24
15:24
Adjust API to introduction of OFAutoreleasePool. file: [d92e163846] check-in: [1496808b81] user: js, branch: trunk, size: 2730 [annotate] [blame] [check-ins using] [diff]
2009-01-06
22:38
Use OFList and OFArray in OFAutoreleasePool.
This reduces code duplication and looks far better.
file: [439fd52763] check-in: [dfc10dbeb8] user: js, branch: trunk, size: 2677 [annotate] [blame] [check-ins using] [diff]
2009-01-05
22:18
Reworked OFList. file: [8e66167c8d] check-in: [8ab6561840] user: js, branch: trunk, size: 2397 [annotate] [blame] [check-ins using] [diff]
00:59
Update copyright. file: [e40d20478e] check-in: [f1b749d113] user: js, branch: trunk, size: 1125 [annotate] [blame] [check-ins using] [diff]
2008-12-20
14:41
Don't put void* in lists, but objects. file: [bd47bd6017] check-in: [b2c9f574cb] user: js, branch: trunk, size: 1118 [annotate] [blame] [check-ins using] [diff]
2008-11-07
14:29
Everything should be documented now. file: [304e257df3] check-in: [e8e45975df] user: js, branch: trunk, size: 1127 [annotate] [blame] [check-ins using] [diff]
2008-10-26
20:54
Return self when we have no return value. This allows nesting. file: [71b17c2d3e] check-in: [8ae4c59cd6] user: js, branch: trunk, size: 548 [annotate] [blame] [check-ins using] [diff]
2008-10-09
00:25
Multiple changes, see details.

* Use config.h.
* Check whether to use sel_get_name or sel_getName.
* Rename freeWithData to freeIncludingData. file: [f955344801] check-in: [7a49441656] user: js, branch: trunk, size: 560 [annotate] [blame] [check-ins using] [diff]

2008-09-14
15:29
Coding style. file: [08759996d3] check-in: [778be56179] user: js, branch: trunk, size: 555 [annotate] [blame] [check-ins using] [diff]
2008-09-12
13:25
Added: Initial import. file: [93a96d7531] check-in: [a580136c80] user: js, branch: trunk, size: 578 [annotate] [blame] [check-ins using]