ObjFW  History of src/runtime/class.m of 6334474ec09e3628

History of the file that is called src/runtime/class.m at check-in 6334474ec09e3628

2024-04-03
02:16
[f20174e5c5] part of check-in [7413a728a7] Change license to LGPLv3 only (check-in: [7413a728a7] user: js, branch: trunk, size: 22621) [annotate] [blame] [check-ins using] [diff]
2024-02-24
19:43
[eb7440eeb7] part of check-in [7a33596a17] runtime: Fix objc_getClassList not unlocking mutex (check-in: [7a33596a17] user: js, branch: 1.0, size: 22364) [annotate] [blame] [check-ins using] [diff]
19:42
[6da45bb3d8] part of check-in [39e23d6363] runtime: Fix objc_getClassList not unlocking mutex (check-in: [39e23d6363] user: js, branch: trunk, size: 22413) [annotate] [blame] [check-ins using] [diff]
2024-02-03
14:41
[628f2b08c1] part of check-in [18ae339de1] runtime: Add support for associated objects (check-in: [18ae339de1] user: js, branch: trunk, size: 22360) [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
[99bd522eda] part of check-in [26ddd2e4e4] Update copyright (check-in: [26ddd2e4e4] user: js, branch: trunk, size: 22311) [annotate] [blame] [check-ins using] [diff]
2023-07-15
14:26
[c32cd0bfe5] part of check-in [1106d5ad1d] runtime: Fix a comment (check-in: [1106d5ad1d] user: js, branch: trunk, size: 22311) [annotate] [blame] [check-ins using] [diff]
2023-06-19
19:22
[13704fc982] part of check-in [da7db4d68c] Minor style fixes (check-in: [da7db4d68c] user: js, branch: trunk, size: 22319) [annotate] [blame] [check-ins using] [diff]
2023-05-03
22:22
[b47c784fc5] part of check-in [5591bf6a0b] Fix compilation with older Clang versions (check-in: [5591bf6a0b] user: js, branch: trunk, size: 22315) [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
[5551b3027e] part of check-in [8939cbdb52] Update copyright (check-in: [8939cbdb52] user: js, branch: trunk, size: 22277) [annotate] [blame] [check-ins using] [diff]
2022-11-06
21:19
[4cb79aa414] part of check-in [5c0117205d] Work around an ICE in Clang 3.7.0 on Windows/x86

Apparently the optimizer crashes on some recursive functions. (check-in: [5c0117205d] user: js, branch: trunk, size: 22277) [annotate] [blame] [check-ins using] [diff]

2022-09-19
19:10
[bcbf47b312] part of check-in [41c2b305ce] Fix missing void in function declarations (check-in: [41c2b305ce] user: js, branch: trunk, size: 22115) [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
[8d4b7cca0f] part of check-in [1a86b8175b] Update copyright (check-in: [1a86b8175b] user: js, branch: trunk, size: 22111) [annotate] [blame] [check-ins using] [diff]
2021-05-02
14:28
[8556b52111] part of check-in [0c7760bd05] Don't use OFEnsure() in runtime (check-in: [0c7760bd05] user: js, branch: trunk, size: 22111) [annotate] [blame] [check-ins using] [diff]
11:43
[70c18ee4cd] part of check-in [ae80dcd8e0] runtime: objc_unregisterClass: Get global lock (check-in: [ae80dcd8e0] user: js, branch: trunk, size: 21950) [annotate] [blame] [check-ins using] [diff]
11:34
[a72b4d25e1] part of check-in [2b75f9e6a0] runtime: Name things more consistently (check-in: [2b75f9e6a0] user: js, branch: trunk, size: 21894) [annotate] [blame] [check-ins using] [diff]
2021-04-18
15:55
[93b6de8609] part of check-in [7392685ffc] Rename all functions in macros.h (check-in: [7392685ffc] user: js, branch: new-naming-convention, size: 21943) [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
[8c93de1488] part of check-in [374e1a1bfa] Update copyright (check-in: [374e1a1bfa] user: js, branch: trunk, size: 21945) [annotate] [blame] [check-ins using] [diff]
2020-12-21
22:22
[c47f6af2b8] part of check-in [68eef83aae] runtime: Fix double initialization (check-in: [68eef83aae] user: js, branch: trunk, size: 22034) [annotate] [blame] [check-ins using] [diff]
2020-12-20
03:06
[0b3dadf0dd] part of check-in [8f271bed22] Let OF_ENSURE use OBJC_ERROR in runtime (check-in: [8f271bed22] user: js, branch: trunk, size: 21823) [annotate] [blame] [check-ins using] [diff]
2020-09-29
21:36
[0dc727f4b5] part of check-in [b4039f9a85] Merge support for tagged pointers (check-in: [b4039f9a85] user: js, branch: trunk, size: 21821) [annotate] [blame] [check-ins using] [diff]
2020-09-26
19:04
[25a8ac61a2] part of check-in [85ff529ac5] runtime: Document all public functions (check-in: [85ff529ac5] user: js, branch: trunk, size: 21734) [annotate] [blame] [check-ins using] [diff]
2020-06-29
20:30
[02bad041ab] part of check-in [8707dd73c4] Add support for tagged pointers in object_getClass

This already makes tagged pointers work in the non-assembly lookup. (check-in: [8707dd73c4] user: js, branch: tagged-pointers, size: 21822) [annotate] [blame] [check-ins using] [diff]

2020-01-02
01:51
[959b2ef399] part of check-in [c7f0229795] Update copyright (check-in: [c7f0229795] user: js, branch: trunk, size: 21735) [annotate] [blame] [check-ins using] [diff]
2019-12-13
00:00
[415251c564] part of check-in [9e23a50de7] runtime: Add class_getInstanceMethod() (check-in: [9e23a50de7] user: js, branch: trunk, size: 21732) [annotate] [blame] [check-ins using] [diff]
2019-11-24
23:57
[9e1fe8b99e] part of check-in [3cc333fb2f] runtime: Always set class->isa->isa correctly (check-in: [3cc333fb2f] user: js, branch: trunk, size: 21768) [annotate] [blame] [check-ins using] [diff]
22:23
[f4d6489e81] part of check-in [c6d2de4312] runtime: Remove duplicate structs for ABI (check-in: [c6d2de4312] user: js, branch: trunk, size: 21442) [annotate] [blame] [check-ins using] [diff]
15:22
[d1f09c48dd] part of check-in [688eef7561] runtime: Make ivars opaque and provide an API (check-in: [688eef7561] user: js, branch: trunk, size: 21745) [annotate] [blame] [check-ins using] [diff]
2019-06-25
20:09
[132bb904b5] part of check-in [3b3729a316] runtime: Don't use static selectors

Static selectors are initialized by a global constructor that might run
too late: If a class has a +[load] that triggers an +[initialize], this
could result in trying to call +[initialize] with the selector in
class.m still being uninitialized. When this happens, it results in a
weird looking crash in an entirely unrelated method. This is because
when uninitialized, the selector name has not been replaced with a
selector UID yet, meaning the pointer to the selector name is treated as
the selector UID. As the dispatch only considers the low 16 bits of the
selector UID for performance reasons, it will just take the low 16 bits
of the pointer to the selector name as the UID without any complaints.
This can then result in calling a random method on that class which then
crashes. (check-in: [3b3729a316] user: js, branch: trunk, size: 21746) [annotate] [blame] [check-ins using] [diff]

2019-06-17
00:38
[15508d0871] part of check-in [79fe29dbf4] Remove underscores from library & framework names

This is more compatible with the various conventions used on various
systems. (check-in: [79fe29dbf4] user: js, branch: trunk, size: 21132) [annotate] [blame] [check-ins using] [diff]

2019-04-14
13:35
[889cba075c] part of check-in [ede088a30d] runtime: Match Apple's +[initialize] behavior

This now calls +[initialize] several times on the same class if it is
unimplemented in one or more of the classes in the chain, to match the
behavior of the Apple runtime. While the behavior before was safer, it
can lead to testing against the ObjFW runtime and everything working,
but then failing when trying to use it with the Apple runtime. (check-in: [ede088a30d] user: js, branch: trunk, size: 21133) [annotate] [blame] [check-ins using] [diff]

2019-02-07
21:55
[6851361cb3] part of check-in [239fbb269e] More style improvements (check-in: [239fbb269e] user: js, branch: trunk, size: 21062) [annotate] [blame] [check-ins using] [diff]
21:31
[f8bb9979ba] part of check-in [754bf24742] More style improvements (check-in: [754bf24742] user: js, branch: trunk, size: 21074) [annotate] [blame] [check-ins using] [diff]
00:46
[66376a6ccb] part of check-in [ef6d69931e] Make style consistent between ObjFW and ObjFW_RT

ObjFW_RT used to be a separate project that followed the BSD style, as
it was written in pure C, while ObjFW's style is based on the BSD style
with changes to make it a better fit for Objective-C. This commit
changes ObjFW_RT to use the same style as ObjFW. (check-in: [ef6d69931e] user: js, branch: trunk, size: 20544) [annotate] [blame] [check-ins using] [diff]

2019-01-17
21:59
[241b0f4d77] part of check-in [1ac944d7c1] class_registerAlias_np(): Acquire the global mutex

A plugin which calls it might be loaded while already being
multi-threaded. (check-in: [1ac944d7c1] user: js, branch: trunk, size: 19581) [annotate] [blame] [check-ins using] [diff]

2019-01-03
19:13
[0a53af1b21] part of check-in [0509d7a844] Update copyright (check-in: [0509d7a844] user: js, branch: trunk, size: 19487) [annotate] [blame] [check-ins using] [diff]
2018-05-13
02:09
[3cdd278d3a] part of check-in [95e1ba8d63] runtime: Port Amiga library to MorphOS (check-in: [95e1ba8d63] user: js, branch: trunk, size: 19481) [annotate] [blame] [check-ins using] [diff]
2018-05-06
21:39
[973ed6f5e5] part of check-in [482698c5be] runtime: Make Amiga library work with -fbaserel

This currently uses __saveds on all exported functions for simplicity.
As an optimization, __saveds can be removed from some functions later
after careful verification that no code path starting from that function
accesses any data. (check-in: [482698c5be] user: js, branch: trunk, size: 20233) [annotate] [blame] [check-ins using] [diff]

2018-05-05
18:06
[6fa07e9231] part of check-in [b3f32186dd] runtime: Let objc_get*Class return Class (check-in: [b3f32186dd] user: js, branch: trunk, size: 20093) [annotate] [blame] [check-ins using] [diff]
2018-04-30
14:51
[b4196ed858] part of check-in [2ae3bc33e1] runtime: Never use assert()

This results in stdio being linked in when building an Amiga library. (check-in: [2ae3bc33e1] user: js, branch: trunk, size: 20084) [annotate] [blame] [check-ins using] [diff]

2018-04-29
20:27
[dc95510919] part of check-in [4c72b5544f] runtime: Add glue functions for Amiga library (check-in: [4c72b5544f] user: js, branch: trunk, size: 20229) [annotate] [blame] [check-ins using] [diff]
19:26
[8d78186ef9] part of check-in [2d8aa8b1e6] runtime: Specify m68k registers for most functions (check-in: [2d8aa8b1e6] user: js, branch: trunk, size: 20099) [annotate] [blame] [check-ins using] [diff]
2018-04-22
16:13
[8659e5eda9] 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: 19487) [annotate] [blame] [check-ins using] [diff]

2018-04-08
23:39
[16946c32d6] part of check-in [8651ed04a0] runtime: Small fix for unregister_class()

Only restore superclass to the name of the superclass if the class has
actually been set up. (check-in: [8651ed04a0] user: js, branch: trunk, size: 19487) [annotate] [blame] [check-ins using] [diff]

2018-01-21
22:16
[2ddf79d34d] part of check-in [0f42b0eafd] Allow building the runtime as a .framework

This also renames ObjFW-RT to ObjFW_RT, as hyphens should not be in
framework names. (check-in: [0f42b0eafd] user: js, branch: trunk, size: 19447) [annotate] [blame] [check-ins using] [diff]

2018-01-03
19:49
[355653e066] part of check-in [7e5c81e186] Update copyright notice (check-in: [7e5c81e186] user: js, branch: trunk, size: 19447) [annotate] [blame] [check-ins using] [diff]
2017-10-01
09:54
[671f7fc3c1] part of check-in [5882409fd0] Nullability fixes for ObjFW runtime (check-in: [5882409fd0] user: js, branch: trunk, size: 19431) [annotate] [blame] [check-ins using] [diff]
2017-07-09
15:29
[d9200138d3] part of check-in [5bb771755d] runtime: Rename include to ObjFW-RT.h (check-in: [5bb771755d] user: js, branch: trunk, size: 19424) [annotate] [blame] [check-ins using] [diff]
2017-06-07
21:38
[de3e6ed813] part of check-in [79011c5f56] runtime: Move all globals into a single struct

This is required to create a .library on MorphOS. (check-in: [79011c5f56] user: js, branch: trunk, size: 19492) [annotate] [blame] [check-ins using] [diff]

2017-06-05
01:07
[aedf6b0f5f] part of check-in [e55ca11653] runtime: get_method(): Look in categories first (check-in: [e55ca11653] user: js, branch: trunk, size: 19431) [annotate] [blame] [check-ins using] [diff]
2017-05-14
02:15
[ac59d0cf50] part of check-in [8c7e612885] runtime: Add nullability annotations (check-in: [8c7e612885] user: js, branch: trunk, size: 19431) [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
[bb8140f5e4] 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: 19431) [annotate] [blame] [check-ins using] [diff]

2017-01-09
17:36
[a5e62b6d57] 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: 19418) [annotate] [blame] [check-ins using] [diff]

2016-07-05
19:31
[9db3a46267] part of check-in [c71706db46] runtime/class.m: Add explicit size_t -> long cast (check-in: [c71706db46] user: js, branch: trunk, size: 19412) [annotate] [blame] [check-ins using] [diff]
2016-07-03
11:24
[c8cb26401f] part of check-in [d4cae4c963] runtime: Add class_addMethod()

Also moves out some stuff to functions to be reusable by
class_addMethod(). (check-in: [d4cae4c963] user: js, branch: trunk, size: 19328) [annotate] [blame] [check-ins using] [diff]

2016-07-02
22:26
[8bf9db28f4] part of check-in [5088c339bf] runtime: Add objc_{allocate,register}ClassPair (check-in: [5088c339bf] user: js, branch: trunk, size: 19505) [annotate] [blame] [check-ins using] [diff]
2016-02-21
15:37
[5e1eae7608] part of check-in [e0b9167693] Make use of C99-style for loops (check-in: [e0b9167693] user: js, branch: trunk, size: 18102) [annotate] [blame] [check-ins using] [diff]
2016-01-05
22:00
[ecd4869918] part of check-in [d3158d091f] (u)int_fast*_t -> (u)int*_t

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

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

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

2015-01-03
20:57
[76d3cf3cc0] part of check-in [cfd374b906] Update copyright (check-in: [cfd374b906] user: js, branch: trunk, size: 18136) [annotate] [blame] [check-ins using] [diff]
2014-06-25
17:55
[775c018011] part of check-in [05a247fbe4] Small Android fixes

* It seems <limits.h> is required for SIZE_MAX.
* Use "exec ./tests" inside adb shell. It seems that either new versions
of ADB or Android don't return otherwise. (check-in: [05a247fbe4] user: js, branch: trunk, size: 18130) [annotate] [blame] [check-ins using] [diff]

2014-05-15
15:32
[79ebd88d66] part of check-in [1ebb9eb7b3] Multiple dtable / sparse array improvements

* dtable.m is now the old sparse array, using IMP as type for values and
thus not violating the C standard anymore (functions may not be stored
in void*)
* New sparsearray.m which can work with any size, based on the sparse
array from the fast path of class.m
* Fast path of class.m now uses the new sparsearray.m (check-in: [1ebb9eb7b3] user: js, branch: trunk, size: 18110) [annotate] [blame] [check-ins using] [diff]

15:17
[ae710a7cad] part of check-in [e23441b121] Don't declare objc_classname_to_class inline

It is too big already for inlining to make any sense. (check-in: [e23441b121] user: js, branch: trunk, size: 19237) [annotate] [blame] [check-ins using] [diff]

03:39
[e257cf48b1] part of check-in [428520105b] objc_exit(): Fix the first class not being free'd

Also cleans up runtime/hashtable.m a little. (check-in: [428520105b] user: js, branch: trunk, size: 19276) [annotate] [blame] [check-ins using] [diff]

2014-05-14
20:28
[0d2c7753b9] part of check-in [e35b10115e] Always use __foo__ instead of foo for attributes (check-in: [e35b10115e] user: js, branch: trunk, size: 19097) [annotate] [blame] [check-ins using] [diff]
2014-04-14
00:45
[cf051d40ec] part of check-in [9da9b2b64c] Coding style

No functional change intended. (check-in: [9da9b2b64c] user: js, branch: trunk, size: 19093) [annotate] [blame] [check-ins using] [diff]

2014-04-08
16:38
[fb4bbc3736] part of check-in [f447af977a] runtime/hashtable.m: Move some code around (check-in: [f447af977a] user: js, branch: trunk, size: 19079) [annotate] [blame] [check-ins using] [diff]
2014-04-06
14:40
[0fb0e5fd5b] part of check-in [c2d9134d88] runtime/hashtable.m: Add support for deletion (check-in: [c2d9134d88] user: js, branch: trunk, size: 19047) [annotate] [blame] [check-ins using] [diff]
2014-03-30
00:30
[6289471667] part of check-in [1ecef2d7f6] ObjFW-RT: Call +[unload] on class unregister (check-in: [1ecef2d7f6] user: js, branch: trunk, size: 18930) [annotate] [blame] [check-ins using] [diff]
2014-03-23
00:15
[91fb9724fc] part of check-in [f3154a74aa] Remove -Wno-deprecated-objc-pointer-introspection (check-in: [f3154a74aa] user: js, branch: trunk, size: 18100) [annotate] [blame] [check-ins using] [diff]
2014-03-22
17:56
[cb99b9ea3b] part of check-in [8d930f2067] Generalize runtime/hashtable.m (check-in: [8d930f2067] user: js, branch: trunk, size: 18100) [annotate] [blame] [check-ins using] [diff]
2014-02-23
17:54
[e32de8ba86] part of check-in [7a1e2de2d4] Add __attribute__((gnu_inline)) for GCC < 4.3 (check-in: [7a1e2de2d4] user: js, branch: trunk, size: 18066) [annotate] [blame] [check-ins using] [diff]
2014-02-13
16:29
[dff5c1b4fe] part of check-in [52c0e9f94e] runtime/class.m: Better handling of Nil parameters

This matches the behaviour of the Apple runtime. (check-in: [52c0e9f94e] user: js, branch: trunk, size: 18038) [annotate] [blame] [check-ins using] [diff]

2014-01-13
13:28
[3f90a22e50] part of check-in [7c0fa1fa85] Remove class_isKindOfClass().

This was never used and is not part of the Apple runtime either. (check-in: [7c0fa1fa85] user: js, branch: trunk, size: 17709) [annotate] [blame] [check-ins using] [diff]

2014-01-05
22:31
[e18e9ca229] part of check-in [3cd9d0ad69] Change behaviour of class_getMethodImplementation.

It behaves like in the Apple runtime now. (check-in: [3cd9d0ad69] user: js, branch: trunk, size: 17886) [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
[753600fe38] part of check-in [3b97fc3cd9] Update copyright. (check-in: [3b97fc3cd9] user: js, branch: trunk, size: 17158) [annotate] [blame] [check-ins using] [diff]
2013-12-20
00:14
[a168991e4e] part of check-in [2dec88a9d5] runtime: More consistency in the API. (check-in: [2dec88a9d5] user: js, branch: trunk, size: 17152) [annotate] [blame] [check-ins using] [diff]
2013-12-19
22:21
[0bf2860357] part of check-in [035fa09270] runtime: Add objc_{get,copy}ClassList(). (check-in: [035fa09270] user: js, branch: trunk, size: 17143) [annotate] [blame] [check-ins using] [diff]
20:15
[3ec80df1e8] part of check-in [b4231b1df9] runtime: New API for internal unregister methods. (check-in: [b4231b1df9] user: js, branch: trunk, size: 15926) [annotate] [blame] [check-ins using] [diff]
2013-12-06
00:52
[e9b6e354b6] part of check-in [84a724dd4b] Add a fast path for objc_classname_to_class().

This should improve the performance for the GCC ABI, as
objc_classname_to_class() is used for all sorts of class lookups, e.g.
objc_lookup_class().

As this performance improvement needs RAM, it is only used after 128
calls into objc_classname_to_class(), so that if the ObjFW ABI is used
and the user does not call into objc_getClass() or similar in a loop, no
memory is wasted.

Runtime internal usage of objc_classname_to_class() does not use the
fast path and does not count as a call into objc_classname_to_class().
The reason for this is that if the runtime calls
objc_classname_to_class(), it already has the lock and thus the
performance gain would be small, but it would waste memory. (check-in: [84a724dd4b] user: js, branch: trunk, size: 15844) [annotate] [blame] [check-ins using] [diff]

2013-11-22
23:24
[0500525bf9] part of check-in [3780f1462e] runtime: Add support for non-fragile ivars. (check-in: [3780f1462e] user: js, branch: trunk, size: 13227) [annotate] [blame] [check-ins using] [diff]
2013-06-17
08:54
[179d6825a3] part of check-in [dc17a614e8] Replace a few asserts with OF_ENSURE / OBJC_ERROR. (check-in: [dc17a614e8] user: js, branch: trunk, size: 12580) [annotate] [blame] [check-ins using] [diff]
2013-03-18
13:17
[6e9f617165] part of check-in [074f577275] Make GCC happy again. (check-in: [074f577275] user: js, branch: trunk, size: 12601) [annotate] [blame] [check-ins using] [diff]
2013-03-14
20:20
[5994e9e90d] part of check-in [69d9f76520] Tag class pointers for @compatibility_aliases.

This makes it possible to find aliases in the classes hashtable and not
call objc_free_class() on them. (check-in: [69d9f76520] user: js, branch: trunk, size: 12594) [annotate] [blame] [check-ins using] [diff]

2013-03-09
09:24
[9014452587] part of check-in [7baf58021d] Fix objc_exit() and add it to tests. (check-in: [7baf58021d] user: js, branch: trunk, size: 12530) [annotate] [blame] [check-ins using] [diff]
2013-03-08
23:00
[c828b98623] part of check-in [e8d6ca16e7] Take advantage of realloc(NULL, n) being defined. (check-in: [e8d6ca16e7] user: js, branch: trunk, size: 12358) [annotate] [blame] [check-ins using] [diff]
2013-03-04
17:20
[d8be8e78d1] 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: 12447) [annotate] [blame] [check-ins using] [diff]

2013-02-17
10:14
[640206d718] part of check-in [2347371351] Remove -Wno-deprecated-objc-isa-usage.

Inside object_{get,set}Class, a cast is used to get rid of the warning
now and all other direct isa references were removed. (check-in: [2347371351] user: js, branch: trunk, size: 12439) [annotate] [blame] [check-ins using] [diff]

2013-01-09
22:24
[0cc7cd7988] part of check-in [813c00ccf0] Update copyright. (check-in: [813c00ccf0] user: js, branch: trunk, size: 12310) [annotate] [blame] [check-ins using] [diff]
2012-12-06
01:19
[9dc5ac3596] part of check-in [7fe9b2e320] Don't inline runtime functions. (check-in: [7fe9b2e320] user: js, branch: trunk, size: 12304) [annotate] [blame] [check-ins using] [diff]
2012-11-30
16:09
[72c72347b1] part of check-in [120caad331] Make runtime API more similar to Apple's.

This makes it easier to use runtime functions in portable code. (check-in: [120caad331] user: js, branch: trunk, size: 11993) [annotate] [blame] [check-ins using] [diff]

15:41
[2c7fbf6833] part of check-in [99766b222c] Remove inline that lead to a missing symbol. (check-in: [99766b222c] user: js, branch: 0.7, size: 11674) [annotate] [blame] [check-ins using] [diff]
15:40
[fb20a2022a] part of check-in [3b58706d32] Remove inline that lead to a missing symbol. (check-in: [3b58706d32] user: js, branch: trunk, size: 11768) [annotate] [blame] [check-ins using] [diff]
2012-11-14
08:00
[d1989ac845] part of check-in [28f58d5a6e] Fix objc_get_type_encoding(). (check-in: [28f58d5a6e] user: js, branch: trunk, size: 11775) [annotate] [blame] [check-ins using] [diff]
2012-09-06
19:13
[d471bf4a2f] part of check-in [20c584252c] Add objc_{construct,destruct}Instance(). (check-in: [20c584252c] user: js, branch: trunk, size: 12946) [annotate] [blame] [check-ins using] [diff]
2012-08-05
16:52
[cde4d41e21] part of check-in [8f02ff02dc] Fix a possible race condition in initialize_class. (check-in: [8f02ff02dc] user: js, branch: trunk, size: 11681) [annotate] [blame] [check-ins using] [diff]
2012-07-17
01:09
[0f8bf1f4e6] part of check-in [345eb93240] Rename ERROR() to OBJC_ERROR().

ERROR seems to be defined on MinGW32 and it's likely that it's also used
on other systems, thus it's better to prefix it with OBJC_. (check-in: [345eb93240] user: js, branch: trunk, size: 11633) [annotate] [blame] [check-ins using] [diff]

2012-07-15
00:45
[2ee4c27804] part of check-in [1633ea5d2a] Fix a bug in free_class. (check-in: [1633ea5d2a] user: js, branch: trunk, size: 11603) [annotate] [blame] [check-ins using] [diff]
2012-05-10
18:21
[db289f8cb1] part of check-in [963db3089f] objc_hashtable_alloc() -> objc_hashtable_new().

For consistency. (check-in: [963db3089f] user: js, branch: runtime, size: 11574) [annotate] [blame] [check-ins using] [diff]

2012-05-09
13:55
[16b932ec92] part of check-in [dcf845546a] Initialize classes on the first dispatch.

This is no longer done in objc_msg_lookup() and thus allows direct class
references. (check-in: [dcf845546a] user: js, branch: runtime, size: 11576) [annotate] [blame] [check-ins using] [diff]

2012-04-22
15:56
[886ace82f1] part of check-in [8525f9600e] Add class_registerAlias_np().

It's required by Clang for @compatibility_alias, even with the fragile
ABI. This might be a bug in Clang, as _np means non-portable and Clang
should not just emit references to such symbols. (check-in: [8525f9600e] user: js, branch: runtime, size: 11088) [annotate] [blame] [check-ins using] [diff]

2012-04-21
13:47
[a7f5437671] part of check-in [d5236bb40e] Ensure all selectors are registered before load. (check-in: [d5236bb40e] user: js, branch: runtime, size: 10935) [annotate] [blame] [check-ins using] [diff]
13:05
[7aa459dc9f] part of check-in [8c368f8f38] Properly copy methods from superclass first. (check-in: [8c368f8f38] user: js, branch: runtime, size: 10912) [annotate] [blame] [check-ins using] [diff]
13:04
[aa051ec745] part of check-in [c03268e4c6] Avoid useless looking for +[load] method. (check-in: [c03268e4c6] user: js, branch: runtime, size: 10934) [annotate] [blame] [check-ins using] [diff]
12:52
[59d640393e] part of check-in [7bbd6e43fe] Move objc_classname_to_class. (check-in: [7bbd6e43fe] user: js, branch: runtime, size: 10889) [annotate] [blame] [check-ins using] [diff]
10:56
[a1cee08383] part of check-in [555445ce0a] Remove useless thread-checking. (check-in: [555445ce0a] user: js, branch: runtime, size: 10889) [annotate] [blame] [check-ins using] [diff]
2012-04-20
13:54
[5cd9de1e6b] part of check-in [70807340fb] Fix load queue. (check-in: [70807340fb] user: js, branch: runtime, size: 10970) [annotate] [blame] [check-ins using] [diff]
13:52
[4ee747388f] part of check-in [69f63f872a] Correctly setup and initialize classes. (check-in: [69f63f872a] user: js, branch: runtime, size: 10971) [annotate] [blame] [check-ins using] [diff]
2012-04-18
18:41
[93558a0a33] part of check-in [d13674c4c9] Correctly call load. (check-in: [d13674c4c9] user: js, branch: runtime, size: 10621) [annotate] [blame] [check-ins using] [diff]
18:00
[106999ef41] part of check-in [5a719c9b1f] Split OBJC_CLASS_INFO_INITIALIZED.

We now have OBJC_CLASS_INFO_{SETUP,LOADED,INITIALIZED}. (check-in: [5a719c9b1f] user: js, branch: runtime, size: 9487) [annotate] [blame] [check-ins using] [diff]

17:29
[4b0eeefabc] part of check-in [3ae7423995] Add cast to make Clang happy. (check-in: [3ae7423995] user: js, branch: runtime, size: 9190) [annotate] [blame] [check-ins using] [diff]
17:26
[82ae92bc57] part of check-in [1bf4571d60] Remove unnecessary interface. (check-in: [1bf4571d60] user: js, branch: runtime, size: 9185) [annotate] [blame] [check-ins using] [diff]
2012-04-08
15:03
[227edc0aad] part of check-in [0e35ae63a5] Return Nil for incomplete classes.

It's better to handle the class like it does not even exist in case it
is not completely loaded. Throwing an error there introcudes trouble
with static instances which try to get the class before initializing the
static instances, so objc_lookup_class() should never throw an error. (check-in: [0e35ae63a5] user: js, branch: runtime, size: 9246) [annotate] [blame] [check-ins using] [diff]

14:25
[04350ea410] part of check-in [36d5f460a5] Properly call initialize. (check-in: [36d5f460a5] user: js, branch: runtime, size: 9298) [annotate] [blame] [check-ins using] [diff]
2012-03-23
15:42
[1eef7dbe27] part of check-in [aa179b6d0a] rootclass->isa->superclass is rootclass. (check-in: [aa179b6d0a] user: js, branch: runtime, size: 8987) [annotate] [blame] [check-ins using] [diff]
14:54
[16e53b23a5] part of check-in [46105d56c7] Add class_getMethodImplementation(). (check-in: [46105d56c7] user: js, branch: runtime, size: 9117) [annotate] [blame] [check-ins using] [diff]
11:08
[c6f580ab0e] part of check-in [db2fccd01f] Fix class_replaceMethod(). (check-in: [db2fccd01f] user: js, branch: runtime, size: 9231) [annotate] [blame] [check-ins using] [diff]
10:46
[53297dd85d] part of check-in [4cf75724eb] Fix objc_get_type_encoding(). (check-in: [4cf75724eb] user: js, branch: runtime, size: 9241) [annotate] [blame] [check-ins using] [diff]
10:45
[b053085faa] part of check-in [2179411c60] Add a cast to make Clang happy. (check-in: [2179411c60] user: js, branch: runtime, size: 9243) [annotate] [blame] [check-ins using] [diff]
2012-03-06
16:24
[79e5f03637] part of check-in [2e39765aa2] objc_replace_{class,instance}_method() -> class_replaceMethod(). (check-in: [2e39765aa2] user: js, branch: runtime, size: 9226) [annotate] [blame] [check-ins using] [diff]
2012-03-04
23:48
[44fd744eb1] part of check-in [31e7b3d756] Better dissection of what should be public and private. (check-in: [31e7b3d756] user: js, branch: runtime, size: 10504) [annotate] [blame] [check-ins using] [diff]
20:37
[283e2434aa] part of check-in [2373a7777d] Sometimes it's hard to make GCC and Clang happy at the same time... (check-in: [2373a7777d] user: js, branch: runtime, size: 10624) [annotate] [blame] [check-ins using] [diff]
20:24
[6ae6224b73] part of check-in [40fbc318bb] Make Clang with -Wshorten-64-to-32 happy. (check-in: [40fbc318bb] user: js, branch: runtime, size: 10600) [annotate] [blame] [check-ins using] [diff]
20:20
Added: [df2c4cfdda] part of check-in [129f90b580] Import and integrate ObjFW-RT. (check-in: [129f90b580] user: js, branch: runtime, size: 10582) [annotate] [blame] [check-ins using]