diff options
| author | nicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-12-21 12:49:26 +0000 |
|---|---|---|
| committer | nicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-12-21 12:49:26 +0000 |
| commit | 33f86c6fbd972c6003462823660f2ae7066a9d34 (patch) | |
| tree | da80c7ab199492b7389004929895a22823b5f659 /libobjc/objc-private | |
| parent | 86655cbff66671fa3d7ec45712671536cbd78e28 (diff) | |
| download | ppe42-gcc-33f86c6fbd972c6003462823660f2ae7066a9d34.tar.gz ppe42-gcc-33f86c6fbd972c6003462823660f2ae7066a9d34.zip | |
In libobjc/:
2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-private/module-abi-8.h (struct objc_symtab): Declare 'refs'
to be 'struct objc_selector *' and not 'SEL'.
* init.c (__objc_exec_class): Call
__objc_register_selectors_from_module instead of iterating over
each selector and calling __sel_register_typed_name for each.
* objc-private/selector.h: Declare
__objc_register_selectors_from_module instead of
__sel_register_typed_name.
* selector.c (__objc_register_selectors_from_module): New.
(__sel_register_typed_name): Made static.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168113 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libobjc/objc-private')
| -rw-r--r-- | libobjc/objc-private/module-abi-8.h | 10 | ||||
| -rw-r--r-- | libobjc/objc-private/selector.h | 5 |
2 files changed, 9 insertions, 6 deletions
diff --git a/libobjc/objc-private/module-abi-8.h b/libobjc/objc-private/module-abi-8.h index 3ed836c518f..0c9574bb499 100644 --- a/libobjc/objc-private/module-abi-8.h +++ b/libobjc/objc-private/module-abi-8.h @@ -48,10 +48,16 @@ struct objc_static_instances struct objc_symtab { unsigned long sel_ref_cnt; /* Unused (always set to 0). */ - SEL refs; /* The table of selectors referenced in + struct objc_selector *refs; /* The table of selectors referenced in this module. This is terminated by a selector with NULL sel_id and NULL - sel_types. */ + sel_types. Note that we use the type + 'struct objc_selector *' and not + 'SEL' (which is 'const struct + objc_selector *') because the sel_id + of these selectors is patched up by + the runtime when the module is + loaded. */ unsigned short cls_def_cnt; /* Number of classes compiled (defined) in the module. */ unsigned short cat_def_cnt; /* Number of categories compiled diff --git a/libobjc/objc-private/selector.h b/libobjc/objc-private/selector.h index 66413a946fe..39fa6b6897a 100644 --- a/libobjc/objc-private/selector.h +++ b/libobjc/objc-private/selector.h @@ -43,6 +43,7 @@ void __objc_register_selectors_from_class(Class); void __objc_register_selectors_from_list (struct objc_method_list *); void __objc_register_selectors_from_description_list (struct objc_method_description_list *method_list); +void __objc_register_selectors_from_module (struct objc_selector *selectors); /* Return whether a selector is mapped or not ("mapped" meaning that it has been inserted into the selector table). This is private as @@ -57,10 +58,6 @@ BOOL sel_is_mapped (SEL aSel); SEL sel_get_any_uid (const char *name); -SEL -__sel_register_typed_name (const char *name, const char *types, - struct objc_selector *orig, BOOL is_const); - #ifdef __cplusplus } #endif /* __cplusplus */ |

