diff options
author | Nicola Pero <nicola.pero@meta-innovation.com> | 2010-12-21 12:49:26 +0000 |
---|---|---|
committer | Nicola Pero <nicola@gcc.gnu.org> | 2010-12-21 12:49:26 +0000 |
commit | 600cbba24eabcc0ec3802e44408f4cd65816fcbf (patch) | |
tree | da80c7ab199492b7389004929895a22823b5f659 /libobjc/objc-private | |
parent | bebf8772de79a91c76ad95274228f5e27a5ed140 (diff) | |
download | gcc-600cbba24eabcc0ec3802e44408f4cd65816fcbf.zip gcc-600cbba24eabcc0ec3802e44408f4cd65816fcbf.tar.gz gcc-600cbba24eabcc0ec3802e44408f4cd65816fcbf.tar.bz2 |
In libobjc/: 2010-12-21 Nicola Pero <nicola.pero@meta-innovation.com>
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.
From-SVN: r168113
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 3ed836c..0c9574b 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 66413a9..39fa6b6 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 */ |