Overview
Comment: | Make __objc_exec_class() take a void*
This is necessary for ObjC++ with GCC, as otherwise, this generates an |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
4e40a57efa74f07103a0962e7c8103cf |
User & Date: | js on 2017-04-02 15:30:03 |
Other Links: | manifest | tags |
Context
2017-04-02
| ||
16:02 | Avoid the anonymous namespace for ObjC++ with GCC check-in: 35934a9594 user: js tags: trunk | |
15:30 | Make __objc_exec_class() take a void* check-in: 4e40a57efa user: js tags: trunk | |
12:13 | Use OF_PATH_CURRENT_DIRECTORY instead of @"." check-in: 643985e07a user: js tags: trunk | |
Changes
Modified src/OFBlock.m from [0163c4920f] to [067d5d407d].
︙ | ︙ | |||
113 114 115 116 117 118 119 | } }; static struct objc_abi_module module = { 8, sizeof(module), NULL, (struct objc_abi_symtab*)&symtab }; | < < | 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | } }; static struct objc_abi_module module = { 8, sizeof(module), NULL, (struct objc_abi_symtab*)&symtab }; OF_CONSTRUCTOR() { __objc_exec_class(&module); } /* End of ObjC module */ #elif defined(OF_APPLE_RUNTIME) extern Class objc_initializeClassPair(Class, const char*, Class, Class); |
︙ | ︙ |
Modified src/runtime/init.m from [103b6f1a87] to [56c8216488].
︙ | ︙ | |||
16 17 18 19 20 21 22 | #include "config.h" #import "runtime.h" #import "runtime-private.h" void | | > > | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include "config.h" #import "runtime.h" #import "runtime-private.h" void __objc_exec_class(void *module_) { struct objc_abi_module *module = module_; objc_global_mutex_lock(); objc_register_all_selectors(module->symtab); objc_register_all_classes(module->symtab); objc_register_all_categories(module->symtab); objc_init_static_instances(module->symtab); |
︙ | ︙ |
Modified src/runtime/runtime-private.h from [26968fda37] to [8959ceec24].
︙ | ︙ | |||
152 153 154 155 156 157 158 | extern struct objc_dtable* objc_dtable_new(void); extern void objc_dtable_copy(struct objc_dtable*, struct objc_dtable*); extern void objc_dtable_set(struct objc_dtable*, uint32_t, IMP); extern void objc_dtable_free(struct objc_dtable*); extern void objc_dtable_cleanup(void); extern void objc_init_static_instances(struct objc_abi_symtab*); extern void objc_forget_pending_static_instances(void); | < | 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | extern struct objc_dtable* objc_dtable_new(void); extern void objc_dtable_copy(struct objc_dtable*, struct objc_dtable*); extern void objc_dtable_set(struct objc_dtable*, uint32_t, IMP); extern void objc_dtable_free(struct objc_dtable*); extern void objc_dtable_cleanup(void); extern void objc_init_static_instances(struct objc_abi_symtab*); extern void objc_forget_pending_static_instances(void); #ifdef OF_HAVE_THREADS extern void objc_global_mutex_lock(void); extern void objc_global_mutex_unlock(void); extern void objc_global_mutex_free(void); #else # define objc_global_mutex_lock() # define objc_global_mutex_unlock() |
︙ | ︙ |
Modified src/runtime/runtime.h from [dffb928599] to [35cbcdf16d].
︙ | ︙ | |||
238 239 240 241 242 243 244 | /* * Used by the compiler, but can also be called manually. * * These declarations are also required to prevent Clang's implicit * declarations which include __declspec(dllimport) on Windows. */ struct objc_abi_module; | | | 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 | /* * Used by the compiler, but can also be called manually. * * These declarations are also required to prevent Clang's implicit * declarations which include __declspec(dllimport) on Windows. */ struct objc_abi_module; extern void __objc_exec_class(void*); extern IMP objc_msg_lookup(id, SEL); extern IMP objc_msg_lookup_stret(id, SEL); extern IMP objc_msg_lookup_super(struct objc_super*, SEL); extern IMP objc_msg_lookup_super_stret(struct objc_super*, SEL); extern void objc_exception_throw(id); extern int objc_sync_enter(id); extern int objc_sync_exit(id); |
︙ | ︙ |