summaryrefslogtreecommitdiffstats
path: root/libobjc/objc-private
diff options
context:
space:
mode:
authornicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>2010-12-21 12:49:26 +0000
committernicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>2010-12-21 12:49:26 +0000
commit33f86c6fbd972c6003462823660f2ae7066a9d34 (patch)
treeda80c7ab199492b7389004929895a22823b5f659 /libobjc/objc-private
parent86655cbff66671fa3d7ec45712671536cbd78e28 (diff)
downloadppe42-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.h10
-rw-r--r--libobjc/objc-private/selector.h5
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 */
OpenPOWER on IntegriCloud