Overview
Comment: | runtime: Let objc_get*Class return Class |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
b3f32186dd6ed59928ddbaa5af2e6719 |
User & Date: | js on 2018-05-05 18:06:22 |
Other Links: | manifest | tags |
Context
2018-05-05
| ||
18:06 | runtime: Remove protos.h as it is no longer used check-in: f854e529c2 user: js tags: trunk | |
18:06 | runtime: Let objc_get*Class return Class check-in: b3f32186dd user: js tags: trunk | |
17:46 | runtime: Work around compiler bug in Amiga library check-in: dff419362e user: js tags: trunk | |
Changes
Modified src/runtime/ObjFW_RT.h from [4c021bd0e6] to [48418839dd].
︙ | ︙ | |||
307 308 309 310 311 312 313 | extern IMP _Nonnull objc_msg_lookup(id _Nullable object, SEL _Nonnull sel); extern IMP _Nonnull objc_msg_lookup_stret(id _Nullable object, SEL _Nonnull sel); extern IMP _Nonnull objc_msg_lookup_super(struct objc_super *_Nonnull super, SEL _Nonnull sel); extern IMP _Nonnull objc_msg_lookup_super_stret( struct objc_super *_Nonnull super, SEL _Nonnull sel); | | | | | 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 | extern IMP _Nonnull objc_msg_lookup(id _Nullable object, SEL _Nonnull sel); extern IMP _Nonnull objc_msg_lookup_stret(id _Nullable object, SEL _Nonnull sel); extern IMP _Nonnull objc_msg_lookup_super(struct objc_super *_Nonnull super, SEL _Nonnull sel); extern IMP _Nonnull objc_msg_lookup_super_stret( struct objc_super *_Nonnull super, SEL _Nonnull sel); extern Class _Nullable objc_lookUpClass(const char *_Nonnull name); extern Class _Nullable objc_getClass(const char *_Nonnull name); extern Class _Nonnull objc_getRequiredClass(const char *_Nonnull name); extern Class _Nullable objc_lookup_class(const char *_Nonnull name); extern Class _Nonnull objc_get_class(const char *_Nonnull name); extern void objc_exception_throw(id _Nullable object); extern int objc_sync_enter(id _Nullable object); extern int objc_sync_exit(id _Nullable object); extern id _Nullable objc_getProperty(id _Nonnull self, SEL _Nonnull _cmd, ptrdiff_t offset, bool atomic); |
︙ | ︙ |
Modified src/runtime/ObjFW_RT.sfd from [256d65765a] to [7051c536a2].
1 2 3 4 5 6 7 8 9 10 11 12 13 | ==base _ObjFWRTBase ==basetype struct Library * ==libname objfw_rt.library ==bias 30 ==public * Functions for the linklib void objc_init(struct objc_libc *libc)(a0) * Used by the compiler - these need glue code void glue___objc_exec_class(void *_Nonnull module)(a0) IMP _Nonnull glue_objc_msg_lookup(id _Nullable obj, SEL _Nonnull sel)(a0,a1) IMP _Nonnull glue_objc_msg_lookup_stret(id _Nullable obj, SEL _Nonnull sel)(a0,a1) IMP _Nonnull glue_objc_msg_lookup_super(struct objc_super *_Nonnull super, SEL _Nonnull sel)(a0,a1) IMP _Nonnull glue_objc_msg_lookup_super_stret(struct objc_super *_Nonnull super, SEL _Nonnull sel)(a0,a1) | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ==base _ObjFWRTBase ==basetype struct Library * ==libname objfw_rt.library ==bias 30 ==public * Functions for the linklib void objc_init(struct objc_libc *libc)(a0) * Used by the compiler - these need glue code void glue___objc_exec_class(void *_Nonnull module)(a0) IMP _Nonnull glue_objc_msg_lookup(id _Nullable obj, SEL _Nonnull sel)(a0,a1) IMP _Nonnull glue_objc_msg_lookup_stret(id _Nullable obj, SEL _Nonnull sel)(a0,a1) IMP _Nonnull glue_objc_msg_lookup_super(struct objc_super *_Nonnull super, SEL _Nonnull sel)(a0,a1) IMP _Nonnull glue_objc_msg_lookup_super_stret(struct objc_super *_Nonnull super, SEL _Nonnull sel)(a0,a1) Class _Nullable glue_objc_lookUpClass(const char *_Nonnull name)(a0) Class _Nullable glue_objc_getClass(const char *_Nonnull name)(a0) Class _Nonnull glue_objc_getRequiredClass(const char *_Nonnull name)(a0) Class _Nullable glue_objc_lookup_class(const char *_Nonnull name)(a0) Class _Nonnull glue_objc_get_class(const char *_Nonnull name)(a0) void glue_objc_exception_throw(id _Nonnull object)(a0) int glue_objc_sync_enter(id _Nullable object)(a0) int glue_objc_sync_exit(id _Nullable object)(a0) id glue_objc_getProperty(id _Nonnull self, SEL _Nonnull _cmd, ptrdiff_t offset, bool atomic)(a0,a1,d0,d1) void glue_objc_setProperty(id _Nonnull self, SEL _Nonnull _cmd, ptrdiff_t offset, id value, bool atomic, signed char copy)(a0,a1,d0,a2,d1,d2) |
︙ | ︙ |
Modified src/runtime/amiga-glue.m from [41f74e1272] to [01ae4542a3].
︙ | ︙ | |||
50 51 52 53 54 55 56 | IMP glue_objc_msg_lookup_super_stret(struct objc_super *super OBJC_M68K_REG("a0"), SEL sel OBJC_M68K_REG("a1")) { return objc_msg_lookup_super_stret(super, sel); } | < > < > < > | 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | IMP glue_objc_msg_lookup_super_stret(struct objc_super *super OBJC_M68K_REG("a0"), SEL sel OBJC_M68K_REG("a1")) { return objc_msg_lookup_super_stret(super, sel); } Class glue_objc_lookUpClass(const char *name OBJC_M68K_REG("a0")) { return objc_lookUpClass(name); } Class glue_objc_getClass(const char *name OBJC_M68K_REG("a0")) { return objc_getClass(name); } Class glue_objc_getRequiredClass(const char *name OBJC_M68K_REG("a0")) { return objc_getRequiredClass(name); } Class glue_objc_lookup_class(const char *name OBJC_M68K_REG("a0")) |
︙ | ︙ |
Modified src/runtime/class.m from [b4196ed858] to [6fa07e9231].
︙ | ︙ | |||
473 474 475 476 477 478 479 | cls->info |= OBJC_CLASS_INFO_LOADED; process_load_queue(); objc_global_mutex_unlock(); } | < > | 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 | cls->info |= OBJC_CLASS_INFO_LOADED; process_load_queue(); objc_global_mutex_unlock(); } Class objc_lookUpClass(const char *name) { Class cls; if ((cls = objc_classname_to_class(name, true)) == NULL) return Nil; |
︙ | ︙ | |||
496 497 498 499 500 501 502 | if (!(cls->info & OBJC_CLASS_INFO_SETUP)) return Nil; return cls; } | < > < > | 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 | if (!(cls->info & OBJC_CLASS_INFO_SETUP)) return Nil; return cls; } Class objc_getClass(const char *name) { return objc_lookUpClass(name); } Class objc_getRequiredClass(const char *name) { Class cls; if ((cls = objc_getClass(name)) == Nil) OBJC_ERROR("Class %s not found!", name); |
︙ | ︙ |
Modified src/runtime/linklib/linklib.m from [c7c08d7d39] to [478a2413e5].
︙ | ︙ | |||
123 124 125 126 127 128 129 | IMP objc_msg_lookup_super_stret(struct objc_super *super, SEL sel) { return glue_objc_msg_lookup_super_stret(super, sel); } | < > < > < > | 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | IMP objc_msg_lookup_super_stret(struct objc_super *super, SEL sel) { return glue_objc_msg_lookup_super_stret(super, sel); } Class objc_lookUpClass(const char *name) { return glue_objc_lookUpClass(name); } Class objc_getClass(const char *name) { return glue_objc_getClass(name); } Class objc_getRequiredClass(const char *name) { return glue_objc_getRequiredClass(name); } Class objc_lookup_class(const char *name) |
︙ | ︙ |
Modified src/runtime/private.h from [457aeb2c70] to [1ad0dd9f90].
︙ | ︙ | |||
175 176 177 178 179 180 181 | id _Nullable obj OBJC_M68K_REG("a0"), SEL _Nonnull sel OBJC_M68K_REG("a1")); extern IMP _Nonnull glue_objc_msg_lookup_super( struct objc_super *_Nonnull super OBJC_M68K_REG("a0"), SEL _Nonnull sel OBJC_M68K_REG("a1")); extern IMP _Nonnull glue_objc_msg_lookup_super_stret( struct objc_super *_Nonnull super OBJC_M68K_REG("a0"), SEL _Nonnull sel OBJC_M68K_REG("a1")); | | | | | 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 | id _Nullable obj OBJC_M68K_REG("a0"), SEL _Nonnull sel OBJC_M68K_REG("a1")); extern IMP _Nonnull glue_objc_msg_lookup_super( struct objc_super *_Nonnull super OBJC_M68K_REG("a0"), SEL _Nonnull sel OBJC_M68K_REG("a1")); extern IMP _Nonnull glue_objc_msg_lookup_super_stret( struct objc_super *_Nonnull super OBJC_M68K_REG("a0"), SEL _Nonnull sel OBJC_M68K_REG("a1")); extern Class _Nullable glue_objc_lookUpClass( const char *_Nonnull name OBJC_M68K_REG("a0")); extern Class _Nullable glue_objc_getClass( const char *_Nonnull name OBJC_M68K_REG("a0")); extern Class _Nonnull glue_objc_getRequiredClass( const char *_Nonnull name OBJC_M68K_REG("a0")); extern Class _Nullable glue_objc_lookup_class( const char *_Nonnull name OBJC_M68K_REG("a0")); extern Class _Nonnull glue_objc_get_class( const char *_Nonnull name OBJC_M68K_REG("a0")); extern int glue_objc_sync_enter(id _Nullable object OBJC_M68K_REG("a0")); extern int glue_objc_sync_exit(id _Nullable object OBJC_M68K_REG("a0")); |
︙ | ︙ |