ObjFW  History of src/runtime/class.m of ae80dcd8e05b4904

History of the file that is called src/runtime/class.m at checkin ae80dcd8e05b4904

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

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

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

2019-06-17
00:38
Remove underscores from library & framework names

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

2019-04-14
13:35
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. file: [889cba075c] check-in: [ede088a30d] user: js, branch: trunk, size: 21133 [annotate] [blame] [check-ins using] [diff]

2019-02-07
21:55
More style improvements file: [6851361cb3] check-in: [239fbb269e] user: js, branch: trunk, size: 21062 [annotate] [blame] [check-ins using] [diff]
21:31
More style improvements file: [f8bb9979ba] check-in: [754bf24742] user: js, branch: trunk, size: 21074 [annotate] [blame] [check-ins using] [diff]
00:46
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. file: [66376a6ccb] check-in: [ef6d69931e] user: js, branch: trunk, size: 20544 [annotate] [blame] [check-ins using] [diff]

2019-01-17
21:59
class_registerAlias_np(): Acquire the global mutex

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

2019-01-03
19:13
Update copyright file: [0a53af1b21] check-in: [0509d7a844] user: js, branch: trunk, size: 19487 [annotate] [blame] [check-ins using] [diff]
2018-05-13
02:09
runtime: Port Amiga library to MorphOS file: [3cdd278d3a] check-in: [95e1ba8d63] user: js, branch: trunk, size: 19481 [annotate] [blame] [check-ins using] [diff]
2018-05-06
21:39
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. file: [973ed6f5e5] check-in: [482698c5be] user: js, branch: trunk, size: 20233 [annotate] [blame] [check-ins using] [diff]

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

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

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

2018-04-08
23:39
runtime: Small fix for unregister_class()

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

2018-01-21
22:16
Allow building the runtime as a .framework

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

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

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

2017-06-05
01:07
runtime: get_method(): Look in categories first file: [aedf6b0f5f] check-in: [e55ca11653] user: js, branch: trunk, size: 19431 [annotate] [blame] [check-ins using] [diff]
2017-05-14
02:15
runtime: Add nullability annotations file: [ac59d0cf50] check-in: [8c7e612885] user: js, branch: trunk, size: 19431 [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
Small code style change

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

2017-01-09
17:36
Update copyright

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

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

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

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

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

2016-01-03
00:41
Update copyright

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

2015-01-03
20:57
Update copyright file: [76d3cf3cc0] check-in: [cfd374b906] user: js, branch: trunk, size: 18136 [annotate] [blame] [check-ins using] [diff]
2014-06-25
17:55
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. file: [775c018011] check-in: [05a247fbe4] user: js, branch: trunk, size: 18130 [annotate] [blame] [check-ins using] [diff]

2014-05-15
15:32
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 file: [79ebd88d66] check-in: [1ebb9eb7b3] user: js, branch: trunk, size: 18110 [annotate] [blame] [check-ins using] [diff]

15:17
Don't declare objc_classname_to_class inline

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

03:39
objc_exit(): Fix the first class not being free'd

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

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

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

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

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

2014-01-13
13:28
Remove class_isKindOfClass().

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

2014-01-05
22:31
Change behaviour of class_getMethodImplementation.

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

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

2013-11-22
23:24
runtime: Add support for non-fragile ivars. file: [0500525bf9] check-in: [3780f1462e] user: js, branch: trunk, size: 13227 [annotate] [blame] [check-ins using] [diff]
2013-06-17
08:54
Replace a few asserts with OF_ENSURE / OBJC_ERROR. file: [179d6825a3] check-in: [dc17a614e8] user: js, branch: trunk, size: 12580 [annotate] [blame] [check-ins using] [diff]
2013-03-18
13:17
Make GCC happy again. file: [6e9f617165] check-in: [074f577275] user: js, branch: trunk, size: 12601 [annotate] [blame] [check-ins using] [diff]
2013-03-14
20:20
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. file: [5994e9e90d] check-in: [69d9f76520] user: js, branch: trunk, size: 12594 [annotate] [blame] [check-ins using] [diff]

2013-03-09
09:24
Fix objc_exit() and add it to tests. file: [9014452587] check-in: [7baf58021d] user: js, branch: trunk, size: 12530 [annotate] [blame] [check-ins using] [diff]
2013-03-08
23:00
Take advantage of realloc(NULL, n) being defined. file: [c828b98623] check-in: [e8d6ca16e7] user: js, branch: trunk, size: 12358 [annotate] [blame] [check-ins using] [diff]
2013-03-04
17:20
Replace BOOL with bool.

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

2013-02-17
10:14
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. file: [640206d718] check-in: [2347371351] user: js, branch: trunk, size: 12439 [annotate] [blame] [check-ins using] [diff]

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

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

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

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

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

2012-05-09
13:55
Initialize classes on the first dispatch.

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

2012-04-22
15:56
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. file: [886ace82f1] check-in: [8525f9600e] user: js, branch: runtime, size: 11088 [annotate] [blame] [check-ins using] [diff]

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

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

17:29
Add cast to make Clang happy. file: [4b0eeefabc] check-in: [3ae7423995] user: js, branch: runtime, size: 9190 [annotate] [blame] [check-ins using] [diff]
17:26
Remove unnecessary interface. file: [82ae92bc57] check-in: [1bf4571d60] user: js, branch: runtime, size: 9185 [annotate] [blame] [check-ins using] [diff]
2012-04-08
15:03
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. file: [227edc0aad] check-in: [0e35ae63a5] user: js, branch: runtime, size: 9246 [annotate] [blame] [check-ins using] [diff]

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