ObjFW  History of src/OFObject.h of 3005748a9d440acd

History of the file that is called src/OFObject.h at check-in 3005748a9d440acd

2024-05-01
15:19
[7b8537b8d6] part of check-in [0c3c3b6efa] Document a lot of undocumented functions & macros

Also fixes Doxygen not creating documentation for `static OF_INLINE`
functions. (check-in: [0c3c3b6efa] user: js, branch: trunk, size: 45047) [annotate] [blame] [check-ins using] [diff]

2024-04-03
02:16
[08353423b4] part of check-in [7413a728a7] Change license to LGPLv3 only (check-in: [7413a728a7] user: js, branch: trunk, size: 43924) [annotate] [blame] [check-ins using] [diff]
2024-04-02
03:21
[a1d249e5df] part of check-in [1af54eb2c2] Only align OFVector4D where necessary

Changing the alignment of OFVector4D globally (as was done previously)
would have technically been an ABI break in extremely rare cases.
However, since we only need the alignment for the methods added after
1.0, it's better to only have the alignment there and get back to full
ABI compatibility with 1.0. (check-in: [1af54eb2c2] user: js, branch: trunk, size: 43716) [annotate] [blame] [check-ins using] [diff]

2024-02-25
01:08
[18f66eccc2] part of check-in [2d8c6a004d] Backport associated objects to old Apple runtime (check-in: [2d8c6a004d] user: js, branch: trunk, size: 43729) [annotate] [blame] [check-ins using] [diff]
2024-02-03
11:41
[7750edaf4e] part of check-in [7324ec8590] Update copyright (check-in: [7324ec8590] user: js, branch: 1.0, size: 43108) [annotate] [blame] [check-ins using] [diff]
08:53
[34d13dde62] part of check-in [19f3948a26] Fix typos in documentation found by spell checker (check-in: [19f3948a26] user: js, branch: 1.0, size: 43108) [annotate] [blame] [check-ins using] [diff]
08:49
[cd5ab83dfc] part of check-in [f97dc452b1] Fix typos in documentation found by spell checker (check-in: [f97dc452b1] user: js, branch: trunk, size: 43121) [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
[f6921949eb] part of check-in [26ddd2e4e4] Update copyright (check-in: [26ddd2e4e4] user: js, branch: trunk, size: 43115) [annotate] [blame] [check-ins using] [diff]
2023-11-03
01:07
[53e8f943e6] part of check-in [7e1dbda4b4] OFMatrix4x4: Remove SSE4.1 due to Clang bugs

Clang fails to correctly align the _values ivar in 32 bit mode, despite
OF_ALIGN(16). Trying to force it to align it properly by creating a new
typedef or putting it into an aligned struct instead makes Clang's
builtin memcpy fail in another, entirely unrelated method (that has no
inline assembly), as the inlined memcpy will then try to use movaps on
unaligned data, probably because Clang still assumes the data to be
unaligned there and tries to memcpy using SSE after adding an offset
that would make it aligned - but now makes it unaligned. (check-in: [7e1dbda4b4] user: js, branch: trunk, size: 43115) [annotate] [blame] [check-ins using] [diff]

00:16
[ea05d80823] part of check-in [7f304f573b] OFMatrix4x4: SSE4.1 for -[transformVectors:count:]

This requires the vectors to be 16 byte aligned. In order to achieve
this, the OFVector4D type is changed to have an alignment of 16 bytes.
However, this does *not* break ABI because the only method actually
requiring 16 byte alignment is -[transformVectors:count:], which was not
in ObjFW 1.0. Hence binaries compiled for ObjFW 1.0 have no 16 byte
alignment for OFVector4D, but also cannot ever call into any code that
needs it. (-[transformedVector:] calls into -[transformVectors:count:],
but creates a properly aligned copy that it passes.) (check-in: [7f304f573b] user: js, branch: trunk, size: 43115) [annotate] [blame] [check-ins using] [diff]

2023-08-09
22:39
[6d396e3db6] part of check-in [772e8b8f78] OFValue: Improve -[description] (check-in: [772e8b8f78] user: js, branch: trunk, size: 43102) [annotate] [blame] [check-ins using] [diff]
2023-08-05
09:04
[2c787e015d] part of check-in [14c70763b0] Remove hacks in headers for C compatibility

A better approach would probably be to have a separate header which
makes some classes available to pure C. (check-in: [14c70763b0] user: js, branch: trunk, size: 43050) [annotate] [blame] [check-ins using] [diff]

2023-07-15
20:57
[f176d35c0c] part of check-in [860b0bf1e9] Merge trunk into branch "amiga-library" (check-in: [860b0bf1e9] user: js, branch: amiga-library, size: 43248) [annotate] [blame] [check-ins using] [diff]
2023-04-10
19:22
[3ddfbc785d] 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: 43248) [annotate] [blame] [check-ins using] [diff]

2023-02-18
12:01
[38cdbbc21b] part of check-in [e31a31bdcb] OFMatrix4x4: Transform vectors in 4D space (check-in: [e31a31bdcb] user: js, branch: trunk, size: 43284) [annotate] [blame] [check-ins using] [diff]
2023-02-16
21:37
[40bec49225] part of check-in [3e4ed4e59f] OFMatrix4x4: Add translation and scaling (check-in: [3e4ed4e59f] user: js, branch: trunk, size: 42024) [annotate] [blame] [check-ins using] [diff]
19:59
[01a23b3a57] part of check-in [db7991d07b] OFVector3D -> OFPoint3D

For now, we're only interested in transformed points. (check-in: [db7991d07b] user: js, branch: trunk, size: 41990) [annotate] [blame] [check-ins using] [diff]

2023-02-12
22:20
[06e4bde8d0] part of check-in [44eb35b212] Add OFMatrix4x4 and OFVector3D

These will be useful for 3D graphics. (check-in: [44eb35b212] user: js, branch: trunk, size: 42011) [annotate] [blame] [check-ins using] [diff]

2023-01-06
09:04
[797f554cc7] part of check-in [8939cbdb52] Update copyright (check-in: [8939cbdb52] user: js, branch: trunk, size: 40902) [annotate] [blame] [check-ins using] [diff]
2022-12-25
19:11
[51658d5865] part of check-in [8461a50c3a] Add missing nullable (check-in: [8461a50c3a] user: js, branch: trunk, size: 40902) [annotate] [blame] [check-ins using] [diff]
18:01
[72f3e8d63d] part of check-in [c911523834] Add -[sortedArrayUsingFunction:context:options:] (check-in: [c911523834] user: js, branch: trunk, size: 40892) [annotate] [blame] [check-ins using] [diff]
2022-12-04
09:01
[4fee091a9d] part of check-in [8d9ab7ea41] Remove +[OFObject new]

While it allows for some laziness when using ARC, it only creates
inconsistency because there are no +[newWith*] methods. (check-in: [8d9ab7ea41] user: js, branch: trunk, size: 40577) [annotate] [blame] [check-ins using] [diff]

2022-11-07
00:24
[f34dd9cc3a] part of check-in [fd7d3894ff] Merge trunk into branch "3d-affine-transforms" (check-in: [fd7d3894ff] user: js, branch: 3d-affine-transforms, size: 41806) [annotate] [blame] [check-ins using] [diff]
00:23
[c07058d567] part of check-in [86f8767eca] Merge trunk into branch "3d-affine-transforms" (check-in: [86f8767eca] user: js, branch: 3d-affine-transforms, size: 41534) [annotate] [blame] [check-ins using] [diff]
2022-10-18
22:19
[c53ca874a9] part of check-in [80dbc3c570] Merge trunk into branch "amiga-library" (check-in: [80dbc3c570] user: js, branch: amiga-library, size: 40734) [annotate] [blame] [check-ins using] [diff]
22:17
[73c8d5277c] part of check-in [ac19ed9d40] Merge trunk into branch "amiga-library" (check-in: [ac19ed9d40] user: js, branch: amiga-library, size: 40462) [annotate] [blame] [check-ins using] [diff]
2022-09-24
15:32
[698abcee0b] part of check-in [96e0a91a06] Do not document exceptions that are obvious

Otherwise every second method would need to have
OFInvalidArgumentException documented. (check-in: [96e0a91a06] user: js, branch: trunk, size: 40734) [annotate] [blame] [check-ins using] [diff]

2022-09-19
19:37
[e7d4a93a9e] part of check-in [ae55197d6b] OFObject: Document exceptions (check-in: [ae55197d6b] user: js, branch: trunk, size: 40824) [annotate] [blame] [check-ins using] [diff]
2022-08-30
00:48
[397c215f3f] part of check-in [4ad0c363f3] OFObject: Small API change (check-in: [4ad0c363f3] user: js, branch: trunk, size: 40492) [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
[48eed47979] part of check-in [1a86b8175b] Update copyright (check-in: [1a86b8175b] user: js, branch: trunk, size: 40462) [annotate] [blame] [check-ins using] [diff]
2021-10-14
23:45
[4b442adb2a] part of check-in [e5f7c958ea] Add OF3DVector (check-in: [e5f7c958ea] user: js, branch: 3d-affine-transforms, size: 41534) [annotate] [blame] [check-ins using] [diff]
2021-05-09
14:45
[9706bbf5bc] part of check-in [3c88df0ce4] Merge trunk into branch "amiga-library"

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

2021-05-02
11:34
[256748162e] part of check-in [2b75f9e6a0] runtime: Name things more consistently (check-in: [2b75f9e6a0] user: js, branch: trunk, size: 40462) [annotate] [blame] [check-ins using] [diff]
2021-04-30
21:23
[6b4d0acc99] part of check-in [39863b3503] Make OFHashSeed private (check-in: [39863b3503] user: js, branch: trunk, size: 40491) [annotate] [blame] [check-ins using] [diff]
2021-04-29
23:24
[f1db17a081] 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: 39289) [annotate] [blame] [check-ins using] [diff]

2021-04-18
20:51
[d972931bb6] part of check-in [35de667566] Rename everything in several smaller files (check-in: [35de667566] user: js, branch: new-naming-convention, size: 39407) [annotate] [blame] [check-ins using] [diff]
15:55
[8b42f7f42b] part of check-in [7392685ffc] Rename all functions in macros.h (check-in: [7392685ffc] user: js, branch: new-naming-convention, size: 39404) [annotate] [blame] [check-ins using] [diff]
13:24
[8dbb8236a1] part of check-in [d9f8960fc5] Rename remaining functions in OFObject.h (check-in: [d9f8960fc5] user: js, branch: new-naming-convention, size: 39432) [annotate] [blame] [check-ins using] [diff]
2021-04-17
22:45
[92e7aec20e] part of check-in [498074dab9] Rename of_(re)alloc and add OFFreeMemory (check-in: [498074dab9] user: js, branch: new-naming-convention, size: 39136) [annotate] [blame] [check-ins using] [diff]
15:20
[0d9484cf9e] part of check-in [03ea273cb3] Clean up blocks a little (check-in: [03ea273cb3] user: js, branch: new-naming-convention, size: 38833) [annotate] [blame] [check-ins using] [diff]
14:13
[36c6bafde9] part of check-in [eb0cfa6ff9] Always prefix functions with the type (check-in: [eb0cfa6ff9] user: js, branch: new-naming-convention, size: 38830) [annotate] [blame] [check-ins using] [diff]
02:27
[972f5ad44c] part of check-in [9f1d51c236] Minor Doxygen fix (check-in: [9f1d51c236] user: js, branch: new-naming-convention, size: 38836) [annotate] [blame] [check-ins using] [diff]
01:24
[e386160582] part of check-in [83dc0fe6e5] OF_NOT_FOUND -> OFNotFound (check-in: [83dc0fe6e5] user: js, branch: new-naming-convention, size: 38805) [annotate] [blame] [check-ins using] [diff]
01:19
[ad55e4debc] part of check-in [dec9721b35] of_rectangle_t -> OFRect (check-in: [dec9721b35] user: js, branch: new-naming-convention, size: 38761) [annotate] [blame] [check-ins using] [diff]
01:10
[43c18460ed] part of check-in [8a7353b219] of_dimension_t -> OFSize (check-in: [8a7353b219] user: js, branch: new-naming-convention, size: 38899) [annotate] [blame] [check-ins using] [diff]
00:54
[257923a725] part of check-in [3524409dd0] of_point_t -> OFPoint (check-in: [3524409dd0] user: js, branch: new-naming-convention, size: 39098) [annotate] [blame] [check-ins using] [diff]
00:51
[cae8b45bf8] part of check-in [8c0d76f782] of_time_interval_t -> OFTimeInterval (check-in: [8c0d76f782] user: js, branch: new-naming-convention, size: 39127) [annotate] [blame] [check-ins using] [diff]
00:44
[51e30260c3] part of check-in [d975c53a43] of_range_t -> OFRange (check-in: [d975c53a43] user: js, branch: new-naming-convention, size: 39171) [annotate] [blame] [check-ins using] [diff]
00:31
[354a662802] part of check-in [1046d10a20] of_byte_order_t -> OFByteOrder (check-in: [1046d10a20] user: js, branch: new-naming-convention, size: 39199) [annotate] [blame] [check-ins using] [diff]
00:24
[726a0561e2] part of check-in [aade14a6e2] of_comparator_t -> OFComparator (check-in: [aade14a6e2] user: js, branch: new-naming-convention, size: 39049) [annotate] [blame] [check-ins using] [diff]
00:14
[035a07e792] part of check-in [61fc389aee] of_comparison_result_t -> OFComparisonResult (check-in: [61fc389aee] user: js, branch: new-naming-convention, size: 39056) [annotate] [blame] [check-ins using] [diff]
2021-04-07
20:39
[846f3a0425] part of check-in [91a4c53bb1] Override -[compare:] with a more specific type (check-in: [91a4c53bb1] user: js, branch: trunk, size: 39074) [annotate] [blame] [check-ins using] [diff]
2021-03-07
15:07
[7b6e5395a2] part of check-in [1948e7e972] *.h: Fold methods into one line where it fits (check-in: [1948e7e972] user: js, branch: trunk, size: 39001) [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:06
[a9ac62cb9b] part of check-in [27b401c7c2] Update copyright (check-in: [27b401c7c2] user: js, branch: amiga-library, size: 39139) [annotate] [blame] [check-ins using] [diff]
22:04
[064d8093db] part of check-in [374e1a1bfa] Update copyright (check-in: [374e1a1bfa] user: js, branch: trunk, size: 39013) [annotate] [blame] [check-ins using] [diff]
2020-12-30
00:03
[d3ad29c6a9] part of check-in [cebf3184eb] Merge trunk into branch "amiga-library" (check-in: [cebf3184eb] user: js, branch: amiga-library, size: 39228) [annotate] [blame] [check-ins using] [diff]
2020-12-26
19:09
[678a8131fe] part of check-in [17d0bee29c] Fix compiling in ObjC++ mode (check-in: [17d0bee29c] user: js, branch: trunk, size: 39102) [annotate] [blame] [check-ins using] [diff]
2020-11-14
12:28
[a59738a747] part of check-in [a55863c2ed] Merge trunk into branch "amiga-library" (check-in: [a55863c2ed] user: js, branch: amiga-library, size: 39227) [annotate] [blame] [check-ins using] [diff]
12:23
[ec746b369b] 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: 39101) [annotate] [blame] [check-ins using] [diff]

11:45
[8a371736ae] part of check-in [25a6c00b82] Merge trunk into branch "amiga-library" (check-in: [25a6c00b82] user: js, branch: amiga-library, size: 39172) [annotate] [blame] [check-ins using] [diff]
2020-11-07
20:23
[3aacd2e524] part of check-in [4fbdca698c] OFObject: Remove -[allocMemoryWithSize:] (check-in: [4fbdca698c] user: js, branch: trunk, size: 39046) [annotate] [blame] [check-ins using] [diff]
2020-11-05
02:35
[19b99027a7] part of check-in [2bb3136a7f] Remove -[allocZeroedMemoryWithSize:]

This is no longer being used. (check-in: [2bb3136a7f] user: js, branch: trunk, size: 41243) [annotate] [blame] [check-ins using] [diff]

2020-11-04
23:18
[9d5edd8a16] part of check-in [3d8286feee] Remove of_free()

While it makes sense to wrap malloc and calloc to replace the error
checking with exceptions, it does not make sense to wrap free. (check-in: [3d8286feee] user: js, branch: trunk, size: 42197) [annotate] [blame] [check-ins using] [diff]

2020-10-25
23:33
[6ddaa1e48b] part of check-in [d0ae3bfd6c] Add of_{malloc,calloc,realloc,free} (check-in: [d0ae3bfd6c] user: js, branch: trunk, size: 42234) [annotate] [blame] [check-ins using] [diff]
2020-10-10
14:27
[2f5277b92c] 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: 40289) [annotate] [blame] [check-ins using] [diff]

2020-10-04
15:00
[5951a63423] part of check-in [92335940e9] Merge trunk into branch "amiga-library" (check-in: [92335940e9] user: js, branch: amiga-library, size: 40405) [annotate] [blame] [check-ins using] [diff]
2020-10-03
11:35
[de7a4dbfdc] part of check-in [163a4a5a2e] Use /** */ instead of /*! */ for documentation (check-in: [163a4a5a2e] user: js, branch: trunk, size: 40279) [annotate] [blame] [check-ins using] [diff]
2020-09-27
01:56
[d7fb98b511] part of check-in [877616edaf] Fix compiling for old Apple runtime (check-in: [877616edaf] user: js, branch: trunk, size: 40279) [annotate] [blame] [check-ins using] [diff]
00:57
[78dcc54e1b] part of check-in [cbc09c6e26] Work around bugs in Apple GCC 4.2.1 (check-in: [cbc09c6e26] user: js, branch: trunk, size: 40090) [annotate] [blame] [check-ins using] [diff]
2020-07-12
10:35
[f46ea6f043] part of check-in [14f05841a3] Split of_random() into of_random{16,32,64}() (check-in: [14f05841a3] user: js, branch: trunk, size: 39642) [annotate] [blame] [check-ins using] [diff]
09:49
[89cb21ae56] part of check-in [c1fe4b2b77] Make of_random() a function

When arc4random() is unavailable, either random() or rand() is used and
both need to be seeded. If of_random() is a macro, it needs to be
(re)seeded every time, as it's unknown whether it has already been
seeded. As it is seeded with gettimeofday() due to the lack of a better
initial seed, this means every call returns the first state for the
current time, which is very predictable. random() and rand() are both
not cryptographic, but this should at least make it a little bit better
now. (check-in: [c1fe4b2b77] user: js, branch: trunk, size: 39571) [annotate] [blame] [check-ins using] [diff]

2020-06-21
03:02
[b43176a606] part of check-in [9937a79627] Add functions/variables for tests to Amiga library (check-in: [9937a79627] user: js, branch: amiga-library, size: 39579) [annotate] [blame] [check-ins using] [diff]
2020-04-19
15:24
[0775955f65] part of check-in [f27905c199] Several documentation improvements (check-in: [f27905c199] user: js, branch: trunk, size: 39453) [annotate] [blame] [check-ins using] [diff]
2020-04-12
12:52
[4e03fe9cf9] part of check-in [d35b4e3a85] Work around broken -Wdocumentation in Clang 10 (check-in: [d35b4e3a85] user: js, branch: trunk, size: 39135) [annotate] [blame] [check-ins using] [diff]
2020-04-11
19:31
[27f5bcdbd5] part of check-in [6e7e19252b] Make OFObject.h and OFString.h C-safe (check-in: [6e7e19252b] user: js, branch: trunk, size: 38999) [annotate] [blame] [check-ins using] [diff]
2020-01-02
22:16
[67744f52d1] part of check-in [f2fe8f96d5] Move autorelease pools to runtime (check-in: [f2fe8f96d5] user: js, branch: trunk, size: 38800) [annotate] [blame] [check-ins using] [diff]
01:51
[8e7d1bdd71] part of check-in [c7f0229795] Update copyright (check-in: [c7f0229795] user: js, branch: trunk, size: 38663) [annotate] [blame] [check-ins using] [diff]
2019-09-29
15:58
[b3d6515614] part of check-in [09be825f88] Remove OFAutoreleasePool

OFAutoreleasePools have long been discouraged in favor of the runtime's
autorelease pools. (check-in: [09be825f88] user: js, branch: trunk, size: 38660) [annotate] [blame] [check-ins using] [diff]

2019-02-17
22:16
[81f633ed2d] part of check-in [4c5f686a52] OFWindowsRegistryKey: Add write support (check-in: [4c5f686a52] user: js, branch: trunk, size: 38661) [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
[b61464d46f] part of check-in [0509d7a844] Update copyright (check-in: [0509d7a844] user: js, branch: trunk, size: 38313) [annotate] [blame] [check-ins using] [diff]
2018-06-03
23:31
[cdaa2f3d08] part of check-in [aacb5897a0] Add -[OFObject allocZeroedMemoryWithSize:(count:)] (check-in: [aacb5897a0] user: js, branch: trunk, size: 38307) [annotate] [blame] [check-ins using] [diff]
2018-04-22
16:13
[a6c803a105] part of check-in [fe2cbe0021] runtime: Define BOOL to be the same as bool

As we define the ABI, we can just replace BOOL with bool everywhere,
including in ObjFW itself. For the Apple platforms where BOOL and bool
are different, this is not a problem as BOOL and bool are passed and
returned the same way in the ABI.

This still defines BOOL to bool for compatibility, except on AmigaOS and
Wii, which both have its own BOOL type. (check-in: [fe2cbe0021] user: js, branch: trunk, size: 37351) [annotate] [blame] [check-ins using] [diff]

2018-02-25
04:21
[f9418de3f6] part of check-in [d6bf2b12dd] OFObject: Bring +[new] back (check-in: [d6bf2b12dd] user: js, branch: trunk, size: 37351) [annotate] [blame] [check-ins using] [diff]
2018-01-21
12:18
[885fe09f8c] part of check-in [2ca34d3de1] OFValue: Support for {point,dimension,rectangle}s (check-in: [2ca34d3de1] user: js, branch: trunk, size: 37194) [annotate] [blame] [check-ins using] [diff]
02:20
[2ac0a8962b] part of check-in [88b19eae2c] Allow boxing of most structs (check-in: [88b19eae2c] user: js, branch: trunk, size: 35406) [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
[607adabcb5] part of check-in [7e5c81e186] Update copyright notice (check-in: [7e5c81e186] user: js, branch: trunk, size: 35362) [annotate] [blame] [check-ins using] [diff]
2017-11-19
14:41
[5636413cd6] part of check-in [487aa4d51b] Fix compiling as ObjC++ (check-in: [487aa4d51b] user: js, branch: trunk, size: 35339) [annotate] [blame] [check-ins using] [diff]
13:14
[c6967b6935] part of check-in [c03aab9c8c] Remove +[OFObject new] (check-in: [c03aab9c8c] user: js, branch: trunk, size: 35143) [annotate] [blame] [check-ins using] [diff]
2017-11-18
19:14
[44d3bd5e78] part of check-in [bb281804a3] Fix the last Doxygen warnings (check-in: [bb281804a3] user: js, branch: trunk, size: 35293) [annotate] [blame] [check-ins using] [diff]
18:50
[4bd56fc717] part of check-in [cc3ad3ddd3] Documentation: Use @brief for all properties (check-in: [cc3ad3ddd3] user: js, branch: trunk, size: 35304) [annotate] [blame] [check-ins using] [diff]
2017-11-05
02:58
[288587471e] part of check-in [7c79db860d] Add OF_WARN_UNUSED_RESULT (check-in: [7c79db860d] user: js, branch: trunk, size: 35248) [annotate] [blame] [check-ins using] [diff]
2017-10-30
00:23
[fa7289510f] part of check-in [a2e849c681] Add class properties where appropriate

This improves Swift compatibility. (check-in: [a2e849c681] user: js, branch: trunk, size: 35160) [annotate] [blame] [check-ins using] [diff]

2017-10-29
21:58
[1f2c48e5a0] part of check-in [f3ccf14461] Convert methods to properties where appropriate

This improves Swift compatibility. (check-in: [f3ccf14461] user: js, branch: trunk, size: 34879) [annotate] [blame] [check-ins using] [diff]

2017-10-17
00:33
[39e5e50197] 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: 35063) [annotate] [blame] [check-ins using] [diff]

2017-10-01
14:14
[7fadabcfb1] part of check-in [f37b373a95] Backport nullability fixes from master (check-in: [f37b373a95] user: js, branch: 0.90, size: 27626) [annotate] [blame] [check-ins using] [diff]
09:28
[cbc749740e] part of check-in [166fd50e82] Nullability fixes for macOS High Sierra (check-in: [166fd50e82] user: js, branch: trunk, size: 34967) [annotate] [blame] [check-ins using] [diff]
2017-09-27
22:38
[299d01c5f5] part of check-in [6b66bda9eb] More nullability fixes (check-in: [6b66bda9eb] user: js, branch: 0.90, size: 27588) [annotate] [blame] [check-ins using] [diff]
22:35
[09a592a800] part of check-in [697e3ecbf7] More nullability fixes (check-in: [697e3ecbf7] user: js, branch: trunk, size: 34929) [annotate] [blame] [check-ins using] [diff]
2017-09-26
22:40
[8cde88e60d] part of check-in [c9efebeff9] Work around Clang analyzer false positives (check-in: [c9efebeff9] user: js, branch: trunk, size: 34949) [annotate] [blame] [check-ins using] [diff]
00:06
[3bd61b8897] part of check-in [cfb4a7ab76] Fix a few missing nullable (check-in: [cfb4a7ab76] user: js, branch: 0.90, size: 27608) [annotate] [blame] [check-ins using] [diff]
00:02
[ad4d018447] part of check-in [3da9426ea5] Fix a few missing nullable (check-in: [3da9426ea5] user: js, branch: trunk, size: 34868) [annotate] [blame] [check-ins using] [diff]
2017-09-25
00:02
[9250be25e0] part of check-in [f714793eb4] OFObject: Add -[performSelector*] with 4 objects (check-in: [f714793eb4] user: js, branch: trunk, size: 34737) [annotate] [blame] [check-ins using] [diff]
2017-09-24
02:11
[95e2ceeaf1] part of check-in [9f1accca4e] OFObject: Add -[performSelector*] with 3 objects (check-in: [9f1accca4e] user: js, branch: trunk, size: 30334) [annotate] [blame] [check-ins using] [diff]
2017-09-09
22:03
[a0035c52d6] part of check-in [55f1b21ae7] Replace type encodings with OFMethodSignature (check-in: [55f1b21ae7] user: js, branch: trunk, size: 26624) [annotate] [blame] [check-ins using] [diff]
2017-08-12
21:03
[eac4bbd7b8] part of check-in [daa11c19cb] Add -[OFMutableArray sortUsingSelector:options:] (check-in: [daa11c19cb] user: js, branch: trunk, size: 27757) [annotate] [blame] [check-ins using] [diff]
2017-05-28
11:24
[9973173cd1] part of check-in [012c6b5786] Make +[resolve{Class,Instance}Method:] return BOOL

Other runtimes expect it to be BOOL, not bool. (check-in: [012c6b5786] user: js, branch: trunk, size: 27477) [annotate] [blame] [check-ins using] [diff]

2017-05-07
20:10
[6e202ea9b1] 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: 27477) [annotate] [blame] [check-ins using] [diff]

2017-02-04
17:45
[292119d486] part of check-in [5a31a537a1] Fix typos in comments and strings found by aspell (check-in: [5a31a537a1] user: js, branch: trunk, size: 27457) [annotate] [blame] [check-ins using] [diff]
2017-01-09
17:36
[d4cf9a5554] 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: 27459) [annotate] [blame] [check-ins using] [diff]

2017-01-07
23:23
[12add09603] part of check-in [30bc1fb225] Override Clang's block declarations on Windows

This is necessary as Clang's implicit declarations for block-related
things are dllimport, while we need dllexport when compiling ObjFW
itself. (check-in: [30bc1fb225] user: js, branch: trunk, size: 27453) [annotate] [blame] [check-ins using] [diff]

2016-06-05
00:01
[fb4f549aa8] part of check-in [3ad1f2b268] Add OFKeyValueCoding

No support for paths and auto-wrapping yet.

Also, no classes like OFDictionary override it yet. (check-in: [3ad1f2b268] user: js, branch: trunk, size: 27435) [annotate] [blame] [check-ins using] [diff]

2016-05-29
00:55
[5b937156e8] part of check-in [4ee6b746cd] runtime/arc.m: Use -[{allows,retain}WeakReference]

This is to have consistent behavior with the Apple runtime, which
requires these. (check-in: [4ee6b746cd] user: js, branch: trunk, size: 27399) [annotate] [blame] [check-ins using] [diff]

2016-05-16
11:14
[2a9718be8b] part of check-in [5a3133f9d8] Minor documentation improvements (check-in: [5a3133f9d8] user: js, branch: trunk, size: 27086) [annotate] [blame] [check-ins using] [diff]
2016-01-03
00:43
[71f630969d] part of check-in [cec0f072f8] Update copyright

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

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

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

2015-11-28
19:47
[70a2085b25] part of check-in [650b4be224] Minor documentation improvements (check-in: [650b4be224] user: js, branch: trunk, size: 27082) [annotate] [blame] [check-ins using] [diff]
2015-11-21
18:35
[95294129a9] part of check-in [d526d938d7] Remove OF_NULLABLE / OF_NONNULL

Now that Clang switched to use _Nullable and _Nonnull instead of
__nullable / __nonnull, there is no longer a conflict with glibc, which
means we can just define _Nullable / _Nonnull to nothing if they are not
understood by the compiler (which did not work with __nullable /
__nonnull due to this conflict).

This also defines _Null_unspecified to nothing if unavailable. (check-in: [d526d938d7] user: js, branch: trunk, size: 27023) [annotate] [blame] [check-ins using] [diff]

2015-10-19
22:15
[baf6f7542e] part of check-in [1ba08eebc5] Add platform.h & make platform defines consistent (check-in: [1ba08eebc5] user: js, branch: trunk, size: 27027) [annotate] [blame] [check-ins using] [diff]
2015-06-14
10:45
[43c8c1be65] part of check-in [b7097a67b6] 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. (check-in: [b7097a67b6] user: js, branch: trunk, size: 27026) [annotate] [blame] [check-ins using] [diff]

2015-06-13
22:26
[c9ef03c38f] part of check-in [9e76144ef8] Add support for and use the new nullability (check-in: [9e76144ef8] user: js, branch: trunk, size: 27023) [annotate] [blame] [check-ins using] [diff]
2015-03-30
21:33
[1907dcf7b8] part of check-in [ffb39d1df6] Add OF_NO_RETURN_FUNC

OF_NO_RETURN_FUNC is defined when __attribute__((__noreturn__)) is
supported for functions, whereas OF_NO_RETURN is only defined when it is
supported for both functions and methods. (check-in: [ffb39d1df6] user: js, branch: trunk, size: 26640) [annotate] [blame] [check-ins using] [diff]

2015-02-01
00:47
[3a0eaddd4d] part of check-in [e0c84651d6] Reduce code size for OF_UNRECOGNIZED_SELECTOR (check-in: [e0c84651d6] user: js, branch: trunk, size: 26635) [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
[6df0d0f15b] part of check-in [cfd374b906] Update copyright (check-in: [cfd374b906] user: js, branch: trunk, size: 26570) [annotate] [blame] [check-ins using] [diff]
2014-07-19
09:55
[9b8af1df33] part of check-in [716b1fc2b3] Don't use C11's noreturn

It causes just too much trouble: It breaks with some old versions of
Clang, where noreturn does not work correctly, and OS X headers break if
noreturn is defined, requiring an ugly and fragile workaround. It's just
not worth the trouble it causes, as the same functionality is available
through __attribute__((__noreturn__)). (check-in: [716b1fc2b3] user: js, branch: trunk, size: 26564) [annotate] [blame] [check-ins using] [diff]

2014-06-21
21:43
[94f4198362] 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: 26570) [annotate] [blame] [check-ins using] [diff]

2014-05-31
16:34
[3a0e0599cf] part of check-in [dccc3ed8a9] Work around broken Apple libc headers (check-in: [dccc3ed8a9] user: js, branch: trunk, size: 29242) [annotate] [blame] [check-ins using] [diff]
2014-05-14
20:45
[baff938aeb] part of check-in [bac91ccede] Add C11 noreturn

If it's unavailable, it's defined to __attribute__((noreturn)).

Unfortunately, it cannot be used for ObjC methods, as noreturn is part
of the return type while __attribute__((noreturn)) needs to be at the
end for an ObjC method. To make matters worse, even GCC versions that
accept noreturn don't allow it for an ObjC method. Thus, the only thing
that can be done is to always use __attribute__((noreturn)) for ObjC
methods using the OF_METHOD_NORETURN define. (check-in: [bac91ccede] user: js, branch: trunk, size: 28951) [annotate] [blame] [check-ins using] [diff]

20:28
[3f124a3246] part of check-in [e35b10115e] Always use __foo__ instead of foo for attributes (check-in: [e35b10115e] user: js, branch: trunk, size: 28700) [annotate] [blame] [check-ins using] [diff]
20:19
[b5db2a6441] part of check-in [c701e89b83] Use thread_local instead of __thread

If threads.h exists, the thread_local from there is used. If it doesn't,
but _Thread_local exists, it's defined to that. As a last fallback, it
is defined to __thread. (check-in: [c701e89b83] user: js, branch: trunk, size: 28653) [annotate] [blame] [check-ins using] [diff]

2014-05-05
02:43
[14f340cddc] part of check-in [b885b6fdfa] Add OF_NO_RETURN and OF_UNREACHABLE (check-in: [b885b6fdfa] user: js, branch: trunk, size: 28386) [annotate] [blame] [check-ins using] [diff]
2014-03-30
00:30
[2a79ae4f27] part of check-in [1ecef2d7f6] ObjFW-RT: Call +[unload] on class unregister (check-in: [1ecef2d7f6] user: js, branch: trunk, size: 28303) [annotate] [blame] [check-ins using] [diff]
2014-02-22
01:14
[9b4e14f514] part of check-in [05f4b0a4f0] Rename AMD64 to x86_64 (check-in: [05f4b0a4f0] user: js, branch: trunk, size: 27785) [annotate] [blame] [check-ins using] [diff]
2014-02-20
16:04
[8e073ebf17] part of check-in [0ce296bbb5] Add forwardingTargetForSelector: for AMD64/Win64 (check-in: [0ce296bbb5] user: js, branch: trunk, size: 27785) [annotate] [blame] [check-ins using] [diff]
2014-02-18
18:50
[7cc08d97ce] part of check-in [246cfe0807] Documentation: Show correct imports (check-in: [246cfe0807] user: js, branch: trunk, size: 27750) [annotate] [blame] [check-ins using] [diff]
2014-01-18
22:27
[a20b25debb] part of check-in [76e53b2e72] Disable fast enumeration for Apple GCC + ObjFW RT.

Apple's GCC seems to only support fast enumeration for the Apple
runtime, as the compiler crashes when trying to use fast enumeration
with the ObjFW runtime. (check-in: [76e53b2e72] user: js, branch: trunk, size: 27347) [annotate] [blame] [check-ins using] [diff]

2014-01-16
23:09
[1fca43414f] part of check-in [dc31ce3d34] Add of_time_interval_t.

This is used instead for time intervals now instead of doubles. (check-in: [dc31ce3d34] user: js, branch: trunk, size: 27259) [annotate] [blame] [check-ins using] [diff]

2014-01-12
23:38
[b36db29afe] part of check-in [4c6d9b7c1b] Add -[superclass] to OFObject protocol. (check-in: [4c6d9b7c1b] user: js, branch: trunk, size: 27105) [annotate] [blame] [check-ins using] [diff]
2014-01-04
00:24
[e73a1c649f] part of check-in [3b97fc3cd9] Update copyright. (check-in: [3b97fc3cd9] user: js, branch: trunk, size: 26984) [annotate] [blame] [check-ins using] [diff]
2013-12-24
00:50
[73a261c6af] part of check-in [2566c341f3] Add forwarding for iOS/ARM64. (check-in: [2566c341f3] user: js, branch: trunk, size: 26978) [annotate] [blame] [check-ins using] [diff]
2013-12-21
12:58
[16867a85cf] part of check-in [3dac86b429] -[performSelector:]: Use the normal dispatch.

This has the advantage of being faster. (check-in: [3dac86b429] user: js, branch: trunk, size: 26955) [annotate] [blame] [check-ins using] [diff]

2013-12-06
02:36
[6c65e9c570] part of check-in [c0f224df8a] Add forwardingTargetForSelector: for x86/Win32. (check-in: [c0f224df8a] user: js, branch: trunk, size: 26929) [annotate] [blame] [check-ins using] [diff]
2013-11-30
19:53
[650e4bd8f2] part of check-in [cb6a61527a] OFObject: Make _isa private.

This prevents direct access to it and enforces the usage of
object_{set,set}Class(). (check-in: [cb6a61527a] user: js, branch: trunk, size: 26726) [annotate] [blame] [check-ins using] [diff]

2013-11-23
01:38
[c6bd5b455e] part of check-in [48df0f966f] Add OF_ROOT_CLASS. (check-in: [48df0f966f] user: js, branch: trunk, size: 26725) [annotate] [blame] [check-ins using] [diff]
01:14
[ac40fa6ce0] part of check-in [3ab5dace83] Add OF_REQUIRES_SUPER. (check-in: [3ab5dace83] user: js, branch: trunk, size: 26581) [annotate] [blame] [check-ins using] [diff]
2013-09-16
17:02
[73a416c428] part of check-in [b8e3900bef] Adjust stret forwarding to recent Clang change. (check-in: [b8e3900bef] user: js, branch: trunk, size: 26373) [annotate] [blame] [check-ins using] [diff]
2013-08-15
18:44
[03b184e014] part of check-in [a5bfaa315b] Add OF_HAVE_CLASS_EXTENSIONS. (check-in: [a5bfaa315b] user: js, branch: trunk, size: 26389) [annotate] [blame] [check-ins using] [diff]
2013-08-01
18:59
[357d7fd283] part of check-in [d694ea89af] Add of_forward_stret for MIPS/ELF. (check-in: [d694ea89af] user: js, branch: trunk, size: 26456) [annotate] [blame] [check-ins using] [diff]
2013-07-31
22:54
[5018540cff] part of check-in [8f337d1890] Add of_forward_stret for PPC/ELF. (check-in: [8f337d1890] user: js, branch: trunk, size: 26345) [annotate] [blame] [check-ins using] [diff]
2013-07-30
21:41
[a8241891a0] part of check-in [9ce5b241e4] Add forwardingTargetForSelector: for PowerPC/ELF.

Methods returning structs are not yet supported. (check-in: [9ce5b241e4] user: js, branch: trunk, size: 26407) [annotate] [blame] [check-ins using] [diff]

2013-07-28
15:29
[c0a893a0e3] part of check-in [2b1b0f8b59] Add of_forward_stret for ARM/ELF. (check-in: [2b1b0f8b59] user: js, branch: trunk, size: 26305) [annotate] [blame] [check-ins using] [diff]
01:12
[4855a8b423] part of check-in [0379a04a1b] Add of_forward_stret for x86/ELF. (check-in: [0379a04a1b] user: js, branch: trunk, size: 26361) [annotate] [blame] [check-ins using] [diff]
2013-07-26
15:21
[664e39b0bd] part of check-in [1a38a540aa] Add of_forward_stret for AMD64/ELF. (check-in: [1a38a540aa] user: js, branch: trunk, size: 26362) [annotate] [blame] [check-ins using] [diff]
2013-07-24
23:05
[5a670ed733] part of check-in [f1416bbdc2] Add forwardingTargetForSelector: for MIPS/ELF.

Only for the O32 ABI and the 32-bit EABI.

Currently, no methods returning structs are supported, see the comment
in OFObject. (check-in: [f1416bbdc2] user: js, branch: trunk, size: 26194) [annotate] [blame] [check-ins using] [diff]

2013-07-23
22:48
[58996a4468] part of check-in [7992490163] Allow classes in collections requiring OFCopying. (check-in: [7992490163] user: js, branch: trunk, size: 26031) [annotate] [blame] [check-ins using] [diff]
2013-07-11
01:39
[3de31d4c62] part of check-in [1e39c46eab] Move feature defines from macros.h to OFObject.h. (check-in: [1e39c46eab] user: js, branch: trunk, size: 25827) [annotate] [blame] [check-ins using] [diff]
2013-04-09
06:47
[d0848d39ae] part of check-in [241692d895] Check for OBJC_NEW_PROPERTIES as a fallback. (check-in: [241692d895] user: js, branch: trunk, size: 25387) [annotate] [blame] [check-ins using] [diff]
2013-03-04
17:20
[668397dc9b] 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: 25355) [annotate] [blame] [check-ins using] [diff]

2013-02-28
09:57
[c49016d190] part of check-in [de24e36b29] Make @true and @false work. (check-in: [de24e36b29] user: js, branch: trunk, size: 25352) [annotate] [blame] [check-ins using] [diff]
2013-02-12
18:22
[7e8147f893] part of check-in [e40729d406] Prefix all ivars with an underscore. (check-in: [e40729d406] user: js, branch: trunk, size: 25222) [annotate] [blame] [check-ins using] [diff]
2013-02-10
16:36
[a61f98d08c] part of check-in [b807b66ccc] Add a warning about reimplementing -[isEqual:]. (check-in: [b807b66ccc] user: js, branch: trunk, size: 25221) [annotate] [blame] [check-ins using] [diff]
2013-01-17
23:15
[dfac8717ac] part of check-in [50b5ac3b27] Documentation improvements. (check-in: [50b5ac3b27] user: js, branch: trunk, size: 24914) [annotate] [blame] [check-ins using] [diff]
2013-01-12
20:53
[5d2293002c] part of check-in [b8ce2359f3] Clean up the feature #ifdef mess. (check-in: [b8ce2359f3] user: js, branch: trunk, size: 24861) [annotate] [blame] [check-ins using] [diff]
20:21
[a016fafbe2] part of check-in [85b8efadbc] Fix --disable-threads. (check-in: [85b8efadbc] user: js, branch: trunk, size: 24856) [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
[7c5fd9c3d2] part of check-in [813c00ccf0] Update copyright. (check-in: [813c00ccf0] user: js, branch: trunk, size: 24831) [annotate] [blame] [check-ins using] [diff]
2012-12-26
14:10
[24db658a1c] part of check-in [4b637f8516] Add OFSystemInfo. (check-in: [4b637f8516] user: js, branch: trunk, size: 24825) [annotate] [blame] [check-ins using] [diff]
2012-12-22
15:37
[fdedfa544a] part of check-in [917ce5754c] Add -[doesNotRecognizeSelector:]. (check-in: [917ce5754c] user: js, branch: trunk, size: 24879) [annotate] [blame] [check-ins using] [diff]
2012-12-06
11:00
[b44a7c59ae] part of check-in [f675979cf0] Add of_random(). (check-in: [f675979cf0] user: js, branch: trunk, size: 24626) [annotate] [blame] [check-ins using] [diff]
2012-12-04
09:19
[c663f1ca8f] part of check-in [f60e4012b7] Randomize hashes.

This prevents DoSing hashtables by creating conflicts deliberately. (check-in: [f60e4012b7] user: js, branch: trunk, size: 24593) [annotate] [blame] [check-ins using] [diff]

2012-11-14
15:39
[710d8a991e] part of check-in [d3a2e59414] Initial -[forwarindTargetForSelector:].

This only works with the ObjFW runtime so far. The Apple runtime will
require an assembly implementation for every architecture. (check-in: [d3a2e59414] user: js, branch: trunk, size: 24563) [annotate] [blame] [check-ins using] [diff]

2012-10-29
13:37
[cf116e78a7] part of check-in [1bcd4b3d46] Documentation improvements (add references). (check-in: [1bcd4b3d46] user: js, branch: 0.7, size: 24135) [annotate] [blame] [check-ins using] [diff]
13:35
[856cc09e65] part of check-in [e685b742d9] Documentation improvements (add references). (check-in: [e685b742d9] user: js, branch: trunk, size: 24135) [annotate] [blame] [check-ins using] [diff]
08:00
[405adaef95] part of check-in [7a3977d7fd] Documentation improvements. (check-in: [7a3977d7fd] user: js, branch: 0.7, size: 24090) [annotate] [blame] [check-ins using] [diff]
07:59
[97ec10457b] part of check-in [63bf4de97b] Documentation improvements. (check-in: [63bf4de97b] user: js, branch: trunk, size: 24090) [annotate] [blame] [check-ins using] [diff]
2012-10-28
12:38
[496d3ca31d] part of check-in [1ad9565253] Switch to a headerdoc-compatible doc format. (check-in: [1ad9565253] user: js, branch: trunk, size: 23805) [annotate] [blame] [check-ins using] [diff]
2012-10-18
17:33
[de75aa3e70] part of check-in [7169decdef] Fix missing #else. (check-in: [7169decdef] user: js, branch: trunk, size: 23805) [annotate] [blame] [check-ins using] [diff]
2012-10-14
00:59
[b6dffac34a] part of check-in [f38744df74] OF_INVALID_INDEX -> OF_NOT_FOUND. (check-in: [f38744df74] user: js, branch: trunk, size: 23778) [annotate] [blame] [check-ins using] [diff]
00:54
[b910dda1d9] part of check-in [c9433ea60d] range.start -> range.location. (check-in: [c9433ea60d] user: js, branch: trunk, size: 23782) [annotate] [blame] [check-ins using] [diff]
2012-10-13
19:30
[2329ee91b2] part of check-in [255fd75828] of_endianess_t -> of_byte_order_t. (check-in: [255fd75828] user: js, branch: trunk, size: 23779) [annotate] [blame] [check-ins using] [diff]
2012-10-12
17:59
[7924907748] part of check-in [c1b2e3e604] Add __attribute__((sentinel)). (check-in: [c1b2e3e604] user: js, branch: trunk, size: 23775) [annotate] [blame] [check-ins using] [diff]
2012-10-09
15:07
[b59326f934] part of check-in [fb515e8e24] Make use of instancetype. (check-in: [fb515e8e24] user: js, branch: trunk, size: 23588) [annotate] [blame] [check-ins using] [diff]
2012-10-03
15:47
[5242dae164] part of check-in [2edae50b86] Move ObjC feature checks to OFObject.h.

This way, it is theoretically possible to compile ObjFW with one
compiler and then use it with another. (check-in: [2edae50b86] user: js, branch: trunk, size: 23550) [annotate] [blame] [check-ins using] [diff]

15:41
[d0b36af00e] part of check-in [7239333455] Move definition of restricted to OFObject.h. (check-in: [7239333455] user: js, branch: trunk, size: 23170) [annotate] [blame] [check-ins using] [diff]
2012-09-17
10:18
[171eb78051] part of check-in [e959c99f85] Add -[performSelectorOnMainThread:waitUntilDone:]. (check-in: [e959c99f85] user: js, branch: trunk, size: 23058) [annotate] [blame] [check-ins using] [diff]
2012-09-16
22:31
[c83f58337e] part of check-in [e9cbd5e12a] Add -[performSelector:onThread:waitUntilDone:]. (check-in: [e9cbd5e12a] user: js, branch: trunk, size: 21795) [annotate] [blame] [check-ins using] [diff]
13:23
[38e57fe783] part of check-in [4fd5559652] Add -[performSelector:onThread:afterDelay:]. (check-in: [4fd5559652] user: js, branch: trunk, size: 20271) [annotate] [blame] [check-ins using] [diff]
2012-09-14
06:09
[69a725f33c] part of check-in [5e067285c8] Add -[OFObject performSelector:afterDelay:]. (check-in: [5e067285c8] user: js, branch: trunk, size: 18659) [annotate] [blame] [check-ins using] [diff]
2012-09-09
14:36
[65abbe11ec] part of check-in [56df9c44de] OFNumber: Implement OFComparing. (check-in: [56df9c44de] user: js, branch: trunk, size: 17442) [annotate] [blame] [check-ins using] [diff]
2012-08-19
21:27
[add59de5c9] part of check-in [bab9dd49fe] Add more ARC type qualifiers. (check-in: [bab9dd49fe] user: js, branch: trunk, size: 17428) [annotate] [blame] [check-ins using] [diff]
2012-08-03
22:37
[0b56356200] part of check-in [285e1138bc] Implement basic forwarding.

No need to implement it for the Apple runtime, as the Apple runtime
already tries to call these methods. (check-in: [285e1138bc] user: js, branch: trunk, size: 17385) [annotate] [blame] [check-ins using] [diff]

18:45
[263d460557] part of check-in [881cfff24e] Add ARC type qualifiers. (check-in: [881cfff24e] user: js, branch: trunk, size: 16807) [annotate] [blame] [check-ins using] [diff]
2012-07-12
01:28
[98f274a22b] part of check-in [8892ae9fcc] Don't access isa directly. (check-in: [8892ae9fcc] user: js, branch: trunk, size: 16226) [annotate] [blame] [check-ins using] [diff]
2012-06-11
20:50
[f1d13468c6] part of check-in [19a677b596] Merge branch 'master' into runtime

* master: (6 commits)
Improve -[OFNumber description].
... (check-in: [19a677b596] user: js, branch: runtime, size: 16168) [annotate] [blame] [check-ins using] [diff]

2012-06-10
13:28
[84660ce002] part of check-in [11d3d69a22] More API improvements. (check-in: [11d3d69a22] user: js, branch: trunk, size: 16169) [annotate] [blame] [check-ins using] [diff]
2012-06-06
14:05
[2f8f69a869] part of check-in [050ac82798] Merge branch 'master' into runtime

* master: (17 commits)
Slightly change the memory management API.
... (check-in: [050ac82798] user: js, branch: runtime, size: 16199) [annotate] [blame] [check-ins using] [diff]

13:47
[08ae6bde87] part of check-in [f7576a66ce] Slightly change the memory management API.

Also fix a bug where OFBigDataArray would waste memory. (check-in: [f7576a66ce] user: js, branch: trunk, size: 16200) [annotate] [blame] [check-ins using] [diff]

2012-04-21
11:31
[9092415875] part of check-in [676e09bf77] Merge branch 'master' into runtime (check-in: [676e09bf77] user: js, branch: runtime, size: 16195) [annotate] [blame] [check-ins using] [diff]
11:02
[34ca0c3322] part of check-in [66db4586f7] Fix __has_feature check. (check-in: [66db4586f7] user: js, branch: trunk, size: 16196) [annotate] [blame] [check-ins using] [diff]
10:35
[491222589f] part of check-in [e5d2a616de] Merge branch 'master' into runtime (check-in: [e5d2a616de] user: js, branch: runtime, size: 16187) [annotate] [blame] [check-ins using] [diff]
10:30
[5bb4fe2eb8] part of check-in [e571ecccc0] Use __objc_yes and __objc_no if available.

This way, @YES and @NO work. (check-in: [e571ecccc0] user: js, branch: trunk, size: 16188) [annotate] [blame] [check-ins using] [diff]

2012-03-23
12:04
[c823dc085d] part of check-in [3719e10281] Merge branch 'master' into runtime (check-in: [3719e10281] user: js, branch: runtime, size: 16055) [annotate] [blame] [check-ins using] [diff]
2012-03-17
15:12
[9620b63ed6] part of check-in [e7d16fea58] Add of_alloc_object(). (check-in: [e7d16fea58] user: js, branch: trunk, size: 16056) [annotate] [blame] [check-ins using] [diff]
2012-03-15
11:29
[5a4773192e] part of check-in [28170f5f65] Greatly improve OFObject's memory handling and performance.

A linked-list is put before each memory chunk allocated instead of
having an array of all memory chunks. This means only one malloc now
instead of one malloc and one realloc. This also means that when
checking reallocs and frees, it's no longer necessary to iterate through
all memory chunks, as the linked list also contains the owner, meaning
realloc and free are no longer O(n), but O(1) now.

As allocating bigger chunks seems to be a little bit slower than smaller
chunks, it seems that this is slightly slower in benchmarks if only very small
chunks are allocated. However, measuring real world usage, it's a lot faster. (check-in: [28170f5f65] user: js, branch: trunk, size: 15956) [annotate] [blame] [check-ins using] [diff]

2012-03-13
20:19
[df231ae667] part of check-in [5a7c58ec98] Add of_num_cpus. (check-in: [5a7c58ec98] user: js, branch: trunk, size: 16271) [annotate] [blame] [check-ins using] [diff]
20:18
[fd7384f991] part of check-in [92da2a3a5b] Move objc_{set,get}Property() declarations to macros.h. (check-in: [92da2a3a5b] user: js, branch: trunk, size: 16244) [annotate] [blame] [check-ins using] [diff]
2012-03-06
16:31
[38b992ba28] part of check-in [9bb186a7a3] Merge changes from default branch into runtime branch. (check-in: [9bb186a7a3] user: js, branch: runtime, size: 16363) [annotate] [blame] [check-ins using] [diff]
16:17
[502b05ce3f] part of check-in [2d08ba105c] Clean up the method replacement mess. (check-in: [2d08ba105c] user: js, branch: trunk, size: 16364) [annotate] [blame] [check-ins using] [diff]
2012-03-04
19:28
[37e4450eb1] part of check-in [1664513cf6] Change includes of objfw-rt.h to include local runtime.h. (check-in: [1664513cf6] user: js, branch: runtime, size: 16981) [annotate] [blame] [check-ins using] [diff]
2012-02-27
22:11
[131792314e] part of check-in [8830166fe8] Add -[OFObject isMemberOfClass:] and -[OFObject isProxy]. (check-in: [8830166fe8] user: js, branch: trunk, size: 16982) [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
[e279082981] part of check-in [ce70e17b38] Update copyright. (check-in: [ce70e17b38] user: js, branch: trunk, size: 16563) [annotate] [blame] [check-ins using] [diff]
2011-12-28
18:41
[2c1d63b959] part of check-in [12eafc42ef] Move a few selectors from OFObject to the OFObject protocol.

Selectors are -[conformsToProtocol:], -[methodForSelector:] and
-[typeEncodingForSelector:]. (check-in: [12eafc42ef] user: js, branch: trunk, size: 16557) [annotate] [blame] [check-ins using] [diff]

2011-09-19
16:34
[27e15c911a] part of check-in [f173477bef] Rename -[allocMemoryForNItems:withSize:] and friends.
It is now -[allocMemoryForNItems:ofSize:].
(check-in: [f173477bef] user: js, branch: trunk, size: 16557) [annotate] [blame] [check-ins using] [diff]
2011-09-11
01:28
[26f6124a82] part of check-in [f786163cf8] Fix ObjC++. (check-in: [f786163cf8] user: js, branch: trunk, size: 16557) [annotate] [blame] [check-ins using] [diff]
2011-09-10
18:36
[786dbd8023] part of check-in [972a3ee40d] Remove -[finalize] as ARC will be implemented instead of a GC. (check-in: [972a3ee40d] user: js, branch: trunk, size: 16556) [annotate] [blame] [check-ins using] [diff]
2011-08-22
09:58
[8c882f215e] part of check-in [367bf4117b] Clean up the class hierarchy in the doxygen generated documentation. (check-in: [367bf4117b] user: js, branch: trunk, size: 16993) [annotate] [blame] [check-ins using] [diff]
2011-07-31
19:45
[7e695cf1f5] part of check-in [fbee44d38e] Cleaner -[setImplementation:...] for old GNU runtime.

Still work needed to correctly update the dtable. (check-in: [fbee44d38e] user: js, branch: trunk, size: 17016) [annotate] [blame] [check-ins using] [diff]

02:07
[5c52be14f5] part of check-in [db5f8c2c1b] Implement adding methods for the GNU runtime. (check-in: [db5f8c2c1b] user: js, branch: trunk, size: 16444) [annotate] [blame] [check-ins using] [diff]
2011-07-30
23:31
[0f97f0d9d0] part of check-in [2828853e17] More enhancements in +[OFObject inheritMethodsFromClass:].

Inherits class and instance methods now, handles superclasses, etc. (check-in: [2828853e17] user: js, branch: trunk, size: 16366) [annotate] [blame] [check-ins using] [diff]

02:14
[1644680d03] part of check-in [cace873874] Improve +[inheritInstanceMethodsFromClass:]. (check-in: [cace873874] user: js, branch: trunk, size: 16211) [annotate] [blame] [check-ins using] [diff]
2011-07-29
21:54
[250cefa1d6] part of check-in [bf0f10966f] Add +[inheritInstanceMethodsFromClass:] to OFObject.

This allows something similar to multiple inheritance. (check-in: [bf0f10966f] user: js, branch: trunk, size: 15999) [annotate] [blame] [check-ins using] [diff]

2011-07-23
13:33
[0bcf5ccb1b] part of check-in [f1d6ecb1b8] Add -[self] to OFObject. (check-in: [f1d6ecb1b8] user: js, branch: trunk, size: 15073) [annotate] [blame] [check-ins using] [diff]
2011-07-06
17:44
[36dca16f39] part of check-in [0319e89d4b] Add +[new] to OFObject for compatibility and convenience. (check-in: [0319e89d4b] user: js, branch: trunk, size: 14997) [annotate] [blame] [check-ins using] [diff]
2011-06-28
18:14
[59c945a116] part of check-in [722f0808e8] Use floats for of_point_t and of_dimension_t. (check-in: [722f0808e8] user: js, branch: trunk, size: 14864) [annotate] [blame] [check-ins using] [diff]
2011-06-13
23:47
[93706299d5] part of check-in [f86ac97de4] Add of_{point,dimension,rectangle}_t. (check-in: [f86ac97de4] user: js, branch: trunk, size: 14856) [annotate] [blame] [check-ins using] [diff]
2011-06-05
22:26
[482cb22a3c] part of check-in [29988c434b] Nicer API for serialization. (check-in: [29988c434b] user: js, branch: trunk, size: 14539) [annotate] [blame] [check-ins using] [diff]
2011-05-15
17:00
[441f3c4a6d] part of check-in [3dad5e5803] Make it possible to specify the byte order for Unicode / UTF-16. (check-in: [3dad5e5803] user: js, branch: trunk, size: 14503) [annotate] [blame] [check-ins using] [diff]
2011-05-04
22:22
[dcd1dc9c0c] part of check-in [851e47d743] Documentation improvements. (check-in: [851e47d743] user: js, branch: trunk, size: 14351) [annotate] [blame] [check-ins using] [diff]
2011-04-24
21:50
[ae7d2dccfa] part of check-in [07b3d0e8de] Add -[finalize] to all classes which would require it once we have GC. (check-in: [07b3d0e8de] user: js, branch: trunk, size: 12020) [annotate] [blame] [check-ins using] [diff]
2011-04-22
20:19
[71473f3fce] part of check-in [e76a7f52c1] More style improvements. (check-in: [e76a7f52c1] user: js, branch: trunk, size: 11851) [annotate] [blame] [check-ins using] [diff]
16:31
[9dc78efdb2] part of check-in [b46a3eccdb] Make OFCopying and OFComparing conform to OFObject.
Also make OFMutableCopying conform to OFCopying.
(check-in: [b46a3eccdb] user: js, branch: trunk, size: 11851) [annotate] [blame] [check-ins using] [diff]
16:23
[1c3650ec63] part of check-in [c7e66feb30] Various style improvements. (check-in: [c7e66feb30] user: js, branch: trunk, size: 11817) [annotate] [blame] [check-ins using] [diff]
2011-03-25
12:30
[20ad48203c] part of check-in [c3f3576af4] Add -[performSelector:] and friends to OFObject. (check-in: [c3f3576af4] user: js, branch: trunk, size: 11791) [annotate] [blame] [check-ins using] [diff]
2011-03-23
13:05
[bcf048ad36] part of check-in [a252dc5c69] Use OF_INVALID_INDEX instead of SIZE_MAX. (check-in: [a252dc5c69] user: js, branch: trunk, size: 10779) [annotate] [blame] [check-ins using] [diff]
12:58
[1c80d73d6b] part of check-in [8de8df50e9] Make the return type of retainCount unsigned int.
This way, the OFObject protocol is compatible to NSObject.
(check-in: [8de8df50e9] user: js, branch: trunk, size: 10745) [annotate] [blame] [check-ins using] [diff]
2011-03-22
00:55
[2a5a45e545] part of check-in [6d4dfb5bc7] Add -Wshorten-64-to-32. (check-in: [6d4dfb5bc7] user: js, branch: trunk, size: 10701) [annotate] [blame] [check-ins using] [diff]
2011-03-21
14:38
[0bd8b0d360] part of check-in [41cd31363f] Move a few methods to OFObject protocol. (check-in: [41cd31363f] user: js, branch: trunk, size: 10681) [annotate] [blame] [check-ins using] [diff]
2011-03-11
13:02
[676c5cd786] part of check-in [2c72efb4e7] Make it easier to generate getters and setters. (check-in: [2c72efb4e7] user: js, branch: trunk, size: 10581) [annotate] [blame] [check-ins using] [diff]
2011-02-26
19:00
[ba88035595] part of check-in [58c07e80e4] Make isa public to allow for better class swizzling. (check-in: [58c07e80e4] user: js, branch: trunk, size: 10461) [annotate] [blame] [check-ins using] [diff]
2011-02-01
22:11
[89e99f7304] part of check-in [03d1b71d10] Use extern "C" where useful.
Improves ObjC++ compatibility.
(check-in: [03d1b71d10] user: js, branch: trunk, size: 10453) [annotate] [blame] [check-ins using] [diff]
21:41
[f957d3ca64] part of check-in [0ca438498e] Define __STDC_CONSTANT_MACROS if not defined. (check-in: [0ca438498e] user: js, branch: trunk, size: 10386) [annotate] [blame] [check-ins using] [diff]
2011-01-24
20:20
[b1fe4b2427] part of check-in [5ad479153e] ObjC++ needs those defines for <stdin.h>. (check-in: [5ad479153e] user: js, branch: trunk, size: 10316) [annotate] [blame] [check-ins using] [diff]
2011-01-01
20:19
[a37d14de62] part of check-in [da6b3d26cb] Change license. (check-in: [da6b3d26cb] user: js, branch: trunk, size: 10251) [annotate] [blame] [check-ins using] [diff]
2010-12-25
13:14
[e8182b85e4] part of check-in [6b45991a6a] Add OFComparing protocol. (check-in: [6b45991a6a] user: js, branch: trunk, size: 9995) [annotate] [blame] [check-ins using] [diff]
2010-12-10
11:21
[a268b416fa] part of check-in [fada60d54c] Documentation fixes. (check-in: [fada60d54c] user: js, branch: trunk, size: 9651) [annotate] [blame] [check-ins using] [diff]
2010-11-16
00:40
[2a51330d11] part of check-in [2011b7b91c] -[className] and +[className] now return an OFString. (check-in: [2011b7b91c] user: js, branch: trunk, size: 9594) [annotate] [blame] [check-ins using] [diff]
2010-11-13
21:57
[82b71eb5d5] part of check-in [9b50b86632] Add -[description] for OFObject, OFString, OFArray and OFDictionary. (check-in: [9b50b86632] user: js, branch: trunk, size: 9611) [annotate] [blame] [check-ins using] [diff]
2010-09-19
22:39
[0ecdb91882] part of check-in [477d06da14] Add -[typeEncodingForSelector] and +[typeEncodingForInstanceSelector:]. (check-in: [477d06da14] user: js, branch: trunk, size: 9319) [annotate] [blame] [check-ins using] [diff]
2010-09-05
23:19
[acfaa1e5ed] part of check-in [e2b06423e0] 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. (check-in: [e2b06423e0] user: js, branch: trunk, size: 8887) [annotate] [blame] [check-ins using] [diff]

2010-05-05
17:21
[edc7438bce] part of check-in [bce7bbddf4] Rename method replacement methods - the old names were too long. (check-in: [bce7bbddf4] user: js, branch: trunk, size: 8894) [annotate] [blame] [check-ins using] [diff]
2010-04-17
16:09
[ed24092d00] part of check-in [2517f18272] Give the methods in OFNumber better names. (check-in: [2517f18272] user: js, branch: trunk, size: 8905) [annotate] [blame] [check-ins using] [diff]
15:46
[c207812c2a] part of check-in [062a052b50] Don't return self where not necessary, return void or something useful. (check-in: [062a052b50] user: js, branch: trunk, size: 8913) [annotate] [blame] [check-ins using] [diff]
2010-04-01
23:51
[2662d5b8c3] part of check-in [8c2755723a] Add support for ObjFW-RT, the ObjFW Objective C runtime. (check-in: [8c2755723a] user: js, branch: trunk, size: 8901) [annotate] [blame] [check-ins using] [diff]
2010-03-14
12:38
[d330b83b36] part of check-in [0d9f51689f] Merge 9af5e9a8f80a into 0.2 branch. (check-in: [0d9f51689f] user: js, branch: 0.2, size: 7882) [annotate] [blame] [check-ins using] [diff]
12:37
[d59ecc6081] part of check-in [40523d5535] Documentation improvements. (check-in: [40523d5535] user: js, branch: trunk, size: 8841) [annotate] [blame] [check-ins using] [diff]
2010-03-13
21:24
[573c4d5ce8] part of check-in [382ed34d40] Add global variable of_pagesize and use it to reduce code duplication. (check-in: [382ed34d40] user: js, branch: trunk, size: 8833) [annotate] [blame] [check-ins using] [diff]
2010-03-05
11:52
[762d83757b] part of check-in [b91a8283fe] Merge a few changesets from the default branch into the 0.2 branch.

Changesets:
* b95fcaa6d694
* 804c68d222b4
* da8cd738da3d
* 1109d5ce3419
* d03f5c1ca95d
* 2a7017722165
* 4fccdc79eeb7
* d228149fbc04
* 8782d412a4a6 (check-in: [b91a8283fe] user: js, branch: 0.2, size: 7874) [annotate] [blame] [check-ins using] [diff]

2010-03-04
12:28
[eab33580e8] part of check-in [a4b1a005b6] Add +[setImplemenation:forClassMethod:] and friends. (check-in: [a4b1a005b6] user: js, branch: trunk, size: 8805) [annotate] [blame] [check-ins using] [diff]
2010-02-24
23:00
[75b9a0dc79] part of check-in [b156ec8284] Rename -[replaceMethod:withMethodFromClass:] and friends.
The rename was needed as these replace instance methods.
(check-in: [b156ec8284] user: js, branch: trunk, size: 8156) [annotate] [blame] [check-ins using] [diff]
2010-02-19
16:36
[b67f49f2af] part of check-in [42886185fd] Update copyright. (check-in: [42886185fd] user: js, branch: trunk, size: 8067) [annotate] [blame] [check-ins using] [diff]
2010-02-11
14:58
[f7abde26a3] part of check-in [72caeab860] Documentation improvements. (check-in: [72caeab860] user: js, branch: trunk, size: 8067) [annotate] [blame] [check-ins using] [diff]
14:05
[db793b12be] part of check-in [a7bed8325c] Add of_range_t and add methods taking an of_range_t. (check-in: [a7bed8325c] user: js, branch: trunk, size: 8020) [annotate] [blame] [check-ins using] [diff]
2010-02-07
14:09
[e2a29ab486] part of check-in [047af7a8ad] Add +[superclass] to OFObject. (check-in: [047af7a8ad] user: js, branch: trunk, size: 7903) [annotate] [blame] [check-ins using] [diff]
2010-01-29
15:21
[58427ce6f5] part of check-in [b725e983ae] Make retain count int32_t. (check-in: [b725e983ae] user: js, branch: trunk, size: 7835) [annotate] [blame] [check-ins using] [diff]
2010-01-25
15:22
[b10aa6cbcf] part of check-in [831ebcd4f5] Make retain counter 32 bit due to atomic ops being 32 bit. (check-in: [831ebcd4f5] user: js, branch: trunk, size: 7836) [annotate] [blame] [check-ins using] [diff]
2010-01-16
13:19
[9367c723f3] part of check-in [9f3151f200] Remove useless definitions in headers. (check-in: [9f3151f200] user: js, branch: trunk, size: 7834) [annotate] [blame] [check-ins using] [diff]
2009-12-06
14:06
[952a3ddb87] part of check-in [3631d46ccc] Move ObjFW definitions to a header that gets installed. (check-in: [3631d46ccc] user: js, branch: trunk, size: 8414) [annotate] [blame] [check-ins using] [diff]
2009-12-05
11:06
[310003f809] part of check-in [c7bfcc9e92] Add +[isSubclassOfClass:] to OFObject. (check-in: [c7bfcc9e92] user: js, branch: trunk, size: 8498) [annotate] [blame] [check-ins using] [diff]
2009-12-03
10:29
[a51d330892] part of check-in [012cee4f80] More documentation improvements. (check-in: [012cee4f80] user: js, branch: trunk, size: 8292) [annotate] [blame] [check-ins using] [diff]
2009-12-02
20:02
[d628e82c53] part of check-in [c7ab3a46d1] Introduce some consistency when to use OFObject* and when to use id. (check-in: [c7ab3a46d1] user: js, branch: trunk, size: 8289) [annotate] [blame] [check-ins using] [diff]
2009-12-01
13:35
[5c9737ae0e] part of check-in [240b72cd71] Better checking which runtime we use. (check-in: [240b72cd71] user: js, branch: trunk, size: 8282) [annotate] [blame] [check-ins using] [diff]
2009-11-29
16:23
[a9bb10dc6d] part of check-in [d57228d9d6] Allow NULL as parameter for -[freeMemory:]. (check-in: [d57228d9d6] user: js, branch: trunk, size: 8341) [annotate] [blame] [check-ins using] [diff]
2009-11-15
01:17
[65d50f6e31] part of check-in [1bae432025] Add +[load] to OFObject. (check-in: [1bae432025] user: js, branch: trunk, size: 8309) [annotate] [blame] [check-ins using] [diff]
2009-11-10
15:32
[1dd4852877] part of check-in [6772512e3e] Improve -[compare:]. (check-in: [6772512e3e] user: js, branch: trunk, size: 8119) [annotate] [blame] [check-ins using] [diff]
2009-11-09
22:45
[916163ab90] part of check-in [a3cc34b139] Rename libobjfw to ObjFW. (check-in: [a3cc34b139] user: js, branch: trunk, size: 7842) [annotate] [blame] [check-ins using] [diff]
2009-11-03
16:48
[27f44708ae] part of check-in [8a35bb55a8] Rename class to class_ for the sake of Objective C++ compatibility. (check-in: [8a35bb55a8] user: js, branch: trunk, size: 7848) [annotate] [blame] [check-ins using] [diff]
2009-08-26
19:40
[5cc0fd9342] part of check-in [146db53e4a] Improve documentation. (check-in: [146db53e4a] user: js, branch: trunk, size: 7844) [annotate] [blame] [check-ins using] [diff]
2009-08-17
21:13
[6180a99265] part of check-in [5903c87d36] Ensure in the headers that we got the required definitions.

This prevents compiling stuff using libobjfw without objfw-config,
which could generate strange bugs. (check-in: [5903c87d36] user: js, branch: trunk, size: 7354) [annotate] [blame] [check-ins using] [diff]

2009-08-12
15:37
[494102f6f4] part of check-in [ce8d36d5c4] Rename +[name] and -[name] to +[className] and -[className]. (check-in: [ce8d36d5c4] user: js, branch: trunk, size: 7243) [annotate] [blame] [check-ins using] [diff]
2009-06-30
14:22
[7edb49c81c] part of check-in [0707c56762] Add +[instanceMethodForSelector:] to OFObject. (check-in: [0707c56762] user: js, branch: trunk, size: 7233) [annotate] [blame] [check-ins using] [diff]
14:15
[2922396d0b] part of check-in [5f47e81a9e] Add +[instancesRespondToSelector:] to OFObject. (check-in: [5f47e81a9e] user: js, branch: trunk, size: 7020) [annotate] [blame] [check-ins using] [diff]
12:07
[f2a66cf4f4] part of check-in [67bb344ba6] A few renames in OFObject, see details.

* +[conformsTo:] to +[conformsToProtocol:].
* -[isKindOf:] to -[isKindOfClass:].
* -[respondsTo:] to -[respondsToSelector:].
* -[conformsTo:] to -[conformsToProtocol:].
* -[methodFor:] to -[methodForSelector:]. (check-in: [67bb344ba6] user: js, branch: trunk, size: 6793) [annotate] [blame] [check-ins using] [diff]

2009-06-15
19:22
[2c81425fe1] part of check-in [172e662b71] Remove whitespaces at EOL. (check-in: [172e662b71] user: js, branch: trunk, size: 6756) [annotate] [blame] [check-ins using] [diff]
2009-06-10
15:31
[b4d0f545f8] part of check-in [b10efe7b2b] Add +[setImplementation:forMethod:]. (check-in: [b10efe7b2b] user: js, branch: trunk, size: 6757) [annotate] [blame] [check-ins using] [diff]
2009-06-09
13:01
[ca450e2d5c] part of check-in [b7cd1e3dc6] Use #import "*.h" instead of #import <*.h> in objfw.h.

We need this because we don't add the objfw include path to the
CPPFLAGS anymore in objfw-config. (check-in: [b7cd1e3dc6] user: js, branch: trunk, size: 6466) [annotate] [blame] [check-ins using] [diff]

2009-06-02
17:21
[60d0648156] part of check-in [4c343b7841] Take care of the root metaclass's super being the root class. (check-in: [4c343b7841] user: js, branch: trunk, size: 6464) [annotate] [blame] [check-ins using] [diff]
2009-06-01
12:20
[3ce907fa27] part of check-in [5008910e85] Add +[conformsTo:] and -[conformsTo:]. (check-in: [5008910e85] user: js, branch: trunk, size: 5884) [annotate] [blame] [check-ins using] [diff]
2009-05-29
19:21
[1ae322315c] part of check-in [033054ad75] A few renames.

OFExceptions:
* OFNoMemException to OFOutOfMemoryException.
* OFMemNotPartOfObjException to OFMemoryNotPartOfObjectException.

OFObject:
* -[addItemToMemoryPool:] to -[addMemoryToPool:].
* -[allocWithSize:] to -[allocMemoryWithSize:].
* -[allocNItems:withSize] to -[allocMemoryForNItems:withSize:].
* -[resizeMem:toSize] to -[resizeMemory:toSize:].
* -[resizeMem:toNItems:withSize:] to
-[resizeMemoryToNItems:withSize:].
* -[freeMem] to -[freeMemory:].

OFString:
* -[urlencode] to -[urlEncodedString].
* -[urldecode] to -[urlDecodedString]. (check-in: [033054ad75] user: js, branch: trunk, size: 5468) [annotate] [blame] [check-ins using] [diff]

2009-05-23
21:53
[7205341d87] part of check-in [526d04018d] A few renames.

OFArray:
* -[add:] to -[addObject:].
* -[last] to -[lastObject].

OFAutoreleasePool:
* +[addToPool:] to +[addObjectToTopmostPool:].
* -[addToPool:] to -[addObject:].

OFDataArray:
* -[add:] to -[addItem:].
* -[last] to -[lastItem].

OFObject:
* -[addToMemoryPool:] to -[addItemToMemoryPool:]. (check-in: [526d04018d] user: js, branch: trunk, size: 5437) [annotate] [blame] [check-ins using] [diff]

2009-05-18
18:15
[ee8a3d67d3] part of check-in [79e1893b40] Introduce OFMutableCopying protocol. (check-in: [79e1893b40] user: js, branch: trunk, size: 5433) [annotate] [blame] [check-ins using] [diff]
16:49
[9afbf70556] part of check-in [8dc49f1861] Make - copy a protocol. (check-in: [8dc49f1861] user: js, branch: trunk, size: 5216) [annotate] [blame] [check-ins using] [diff]
2009-05-13
20:39
[9df3b05f63] part of check-in [6d589825cd] Let - release return void again.

If you want to know if it will be released, you can just get the retain
count and check it this way. (check-in: [6d589825cd] user: js, branch: trunk, size: 5074) [annotate] [blame] [check-ins using] [diff]

20:31
[aacf1f5953] part of check-in [9e6dd00ef5] Rename - free to - (void)dealloc. (check-in: [9e6dd00ef5] user: js, branch: trunk, size: 5068) [annotate] [blame] [check-ins using] [diff]
19:49
[daf333a5b7] part of check-in [917188fdcc] There's no need for + initialize to return anything. (check-in: [917188fdcc] user: js, branch: trunk, size: 5024) [annotate] [blame] [check-ins using] [diff]
2009-05-03
21:33
[1bd5addeee] part of check-in [5ca127891c] Get rid of + new.
Additionally, make - accept return an autoreleased OFTCPSocket.
(check-in: [5ca127891c] user: js, branch: trunk, size: 5018) [annotate] [blame] [check-ins using] [diff]
2009-04-26
12:44
[8b1380da52] part of check-in [e959fed010] A few renames in OFObject.

getMemWithSize: -> allocWithSize:
getMemForNItems:ofSize: -> allocNItems:withSize:
resizeMem:toNItems:ofSize: -> resizeMem:toNItems:withSize: (check-in: [e959fed010] user: js, branch: trunk, size: 5113) [annotate] [blame] [check-ins using] [diff]

2009-04-21
17:16
[706bb1644c] part of check-in [d87df02e8b] The if ((self = [super init])) construct isn't needed anymore. (check-in: [d87df02e8b] user: js, branch: trunk, size: 5115) [annotate] [blame] [check-ins using] [diff]
2009-04-19
20:19
[84bfaf3d9b] part of check-in [348b389736] Actually, it makes sense that - release returns self.
This way, you can check if the object has been free'd, for example
using if ((obj = [obj release]) == nil).
(check-in: [348b389736] user: js, branch: trunk, size: 4759) [annotate] [blame] [check-ins using] [diff]
17:37
[9fc0378e5d] part of check-in [57fb5578cc] Remove forwarding methods. See long commit message for details.

There are two resons for removing it:

First, OFPlugin does not need forwarding anymore. Second is that
forwarding is broken in both, the GNU and the Apple runtime.

In GNU libobjc, objc_msg_sendv is implemented using __builtin_apply,
which is broken on many platforms, including x86_64. If forwarding is
used, the application will just crash. To work around that, I'd need to
parse the type encoding and use libffi to call the method instead of
using objc_msg_sendv.

Now the Apple runtime has a similar problem: There is no objc_msgSendv
for PPC64 and x86_64 as it's only in ObjC1 and on ARM (iPhone), it's
broken (most likely because the iPhone uses only ObjC2 - I was confused
that objc_msgSendv was even in the libobjc there). So I'd need to write
an ASM implementation for these 3.

Writing those 3 ASM implementations (or 5, so we don't depend on ObjC1
stuff on PPC32 and x86 as well) wouldn't be a problem, but there is a
problem the GNU libobjc and the Apple runtime got in common, which
originates from the early ObjC implementations:

forward:: and performv:: were only designed to return scalar types. But
today, it's possible to return floats, structs and unions as well. What
Apple and GNU use here is a very hacky workaround and it's just luck
that it works. forward:: and performv:: both return an id (Apple) or
void* (GNU). forward:: is called by the runtime if you called a method
that is not implemented. The compiler does not know at compile time
that it is not implemented, therefore expects a float as a return. On
x86, floats are returned in sp0. The runtime now notices that the
called method is not implemented and calls forward::. Forward then
calls performv:: to call the right method. The method returns a float
and stores it in sp0. Remember that both, forward:: and performv::
return an id / void*. performv:: returns now and after that, forward::
returns. The return of those was always put into eax, as that's how
scalar values are returned on x86. The original caller of the method
does not expect any return value in eax, but in sp0. This works, as
no code touched sp0. However, you can not rely on sp0 not being
touched. It's just luck that the compiler generates code that does not
touch sp0.

While this works for forwarding due to the ABI on x86 (and the ABIs on
many other platforms allow this hack as well), this fails if you call
performv:: directly on a method returning a float. In this case, the
compiler does not expect a return value in sp0, but in eax, as
performv:: is expected to return id / void*. Therefore the bogus value
in eax will be casted to float and the result will be useless.

This is why I decided to remove forwarding and performv:: from libobjfw
for now. If I encounter a situation where I need forwarding, I'm going
to implement it in a sane way and NOT the objc way. The forwarding
methods this commit removes did it the objc way, which is IMO just
wrong. (That way was ok back then when you only had scalar return
types, but today you're not limited to scalar return types anymore.) (check-in: [57fb5578cc] user: js, branch: trunk, size: 4765) [annotate] [blame] [check-ins using] [diff]

2009-04-12
14:51
[e051be24f6] part of check-in [cbdd534337] Get rid of the dependency on Object.

This allows libobjfw to run on ObjC2-only runtimes like the one on the
iPhone. However, it's still relying on objc_msgSendv for plugins, which
is unavailable in ObjC2-only runtimes, thus OFPlugins are unavailable
on the iPhone until I write a replacement for objc_msgSendv. (check-in: [cbdd534337] user: js, branch: trunk, size: 5627) [annotate] [blame] [check-ins using] [diff]

2009-04-04
19:56
[6f74f6252f] part of check-in [a72c435267] Fix wrong documentation. (check-in: [a72c435267] user: js, branch: trunk, size: 3381) [annotate] [blame] [check-ins using] [diff]
2009-03-15
13:46
[1af8420b56] part of check-in [2ff44fe8d7] Preliminary OFConstString implementation and support for @"" literals. (check-in: [2ff44fe8d7] user: js, branch: trunk, size: 3381) [annotate] [blame] [check-ins using] [diff]
2009-03-04
20:49
[a404ee9968] part of check-in [e73e76e40f] - release should not be chained, might be free'd. Therefore return void. (check-in: [e73e76e40f] user: js, branch: trunk, size: 3294) [annotate] [blame] [check-ins using] [diff]
2009-02-15
16:40
[25e68717c7] part of check-in [d9308adc2b] Get rid of OFComparable and make it part of OFObject. (check-in: [d9308adc2b] user: js, branch: trunk, size: 3288) [annotate] [blame] [check-ins using] [diff]
2009-02-14
17:26
[2370690927] part of check-in [029511474c] Always use #include for libc headers due to glibc being broken.
Do the same for win32 headers, just in case. They should work with
#import, but you never know ;).
(check-in: [029511474c] user: js, branch: trunk, size: 2817) [annotate] [blame] [check-ins using] [diff]
2009-01-06
22:38
[8a674581d8] part of check-in [dfc10dbeb8] Use OFList and OFArray in OFAutoreleasePool.
This reduces code duplication and looks far better.
(check-in: [dfc10dbeb8] user: js, branch: trunk, size: 2816) [annotate] [blame] [check-ins using] [diff]
2009-01-05
00:59
[743bd758c4] part of check-in [f1b749d113] Update copyright. (check-in: [f1b749d113] user: js, branch: trunk, size: 2756) [annotate] [blame] [check-ins using] [diff]
00:56
[e8bad88823] part of check-in [b412845664] Initial OFAutoreleasePool - still needs a *lot* of testing. (check-in: [b412845664] user: js, branch: trunk, size: 2749) [annotate] [blame] [check-ins using] [diff]
2008-12-24
11:55
[9f93088fa9] part of check-in [486760ed2b] Add methods to initalize from and append from formatted C strings. (check-in: [486760ed2b] user: js, branch: trunk, size: 2482) [annotate] [blame] [check-ins using] [diff]
2008-12-19
23:15
[ac2041ef80] part of check-in [e668c03098] Add errno in exceptions where it's useful. (check-in: [e668c03098] user: js, branch: trunk, size: 2207) [annotate] [blame] [check-ins using] [diff]
2008-11-30
15:17
[0778c8e9f4] part of check-in [4b8666fe15] Clean up imports. (check-in: [4b8666fe15] user: js, branch: trunk, size: 2205) [annotate] [blame] [check-ins using] [diff]
2008-11-08
20:28
[f0d19652e8] part of check-in [14ba9e517b] Optimize OFObject. (check-in: [14ba9e517b] user: js, branch: trunk, size: 2204) [annotate] [blame] [check-ins using] [diff]
2008-11-05
18:22
[2a153af38a] part of check-in [1caf21d1b2] More documentation. (check-in: [1caf21d1b2] user: js, branch: trunk, size: 2336) [annotate] [blame] [check-ins using] [diff]
17:51
[1c8d9403e3] part of check-in [32ccf22a44] More documentation. (check-in: [32ccf22a44] user: js, branch: trunk, size: 2224) [annotate] [blame] [check-ins using] [diff]
2008-11-01
22:20
[d5d3bf61c7] part of check-in [9944a6f8a4] Some exception stuff & withSize -> ofSize for OFObject. (check-in: [9944a6f8a4] user: js, branch: trunk, size: 837) [annotate] [blame] [check-ins using] [diff]
16:44
[fe500dfb05] part of check-in [9a3c338399] Fix missing include. (check-in: [9a3c338399] user: js, branch: trunk, size: 837) [annotate] [blame] [check-ins using] [diff]
2008-10-29
17:29
[05ff92829e] part of check-in [49859c2bcc] Add getMemForNItems:withSize: & resizeMem:toNItems:withSize: in OFObject

Additionally, interface for OFArray. (check-in: [49859c2bcc] user: js, branch: trunk, size: 818) [annotate] [blame] [check-ins using] [diff]

2008-10-26
20:54
[1168f25909] part of check-in [8ae4c59cd6] Return self when we have no return value. This allows nesting. (check-in: [8ae4c59cd6] user: js, branch: trunk, size: 665) [annotate] [blame] [check-ins using] [diff]
2008-10-22
13:32
[1d4691aa4c] part of check-in [e47ad44290] Reworked OFObject and added append(Wide)CString to OFString.

The reworked OFObject lets one test fail on the GNU runtime.
Unfortunately, I have no idea why... (check-in: [e47ad44290] user: js, branch: trunk, size: 630) [annotate] [blame] [check-ins using] [diff]

2008-10-08
23:15
[20796294ad] part of check-in [b597d49f43] Multiple changes, see details.

* OFObject getMem: renamd to getMemWithSize:.
* OFString compare: renamed to compareTo:.
* Exceptions don't throw itself anymore.
* Exceptions include an error string now.
* Exceptions now got raise and string.
* New methods for OFFile:
* changeModeOfFile:toMode:
* changeOwnerOfFile:toOwner:andGroup:
* delete:
* link:to:
* symlink:to:
* OFFile isEndOfFile renamd to atEndOfFile
* OFNotImplementedExeception newWithObject:andMethod renamed to
newWithObject:andSelector:.
* Tests updated accordingly.
* TODO list added. (check-in: [b597d49f43] user: js, branch: trunk, size: 671) [annotate] [blame] [check-ins using] [diff]

2008-09-14
16:43
[55682be82c] part of check-in [7b8b7cd06c] Lots of changes. See full commit message.

* Updated buildsys to fixed version.
* Implement exceptions.
* Let OFObject use exceptions.
* Write tests for OFObject.
* Fix a bug in OFObject's freeMem:. (check-in: [7b8b7cd06c] user: js, branch: trunk, size: 869) [annotate] [blame] [check-ins using] [diff]

15:29
[b47bfb1d54] part of check-in [778be56179] Coding style. (check-in: [778be56179] user: js, branch: trunk, size: 663) [annotate] [blame] [check-ins using] [diff]
2008-09-12
13:25
Added: [3d2b1446a8] part of check-in [a580136c80] Initial import. (check-in: [a580136c80] user: js, branch: trunk, size: 651) [annotate] [blame] [check-ins using]