aboutsummaryrefslogtreecommitdiff
path: root/libobjc/objc-private
diff options
context:
space:
mode:
authorNicola Pero <nicola.pero@meta-innovation.com>2010-12-21 12:49:26 +0000
committerNicola Pero <nicola@gcc.gnu.org>2010-12-21 12:49:26 +0000
commit600cbba24eabcc0ec3802e44408f4cd65816fcbf (patch)
treeda80c7ab199492b7389004929895a22823b5f659 /libobjc/objc-private
parentbebf8772de79a91c76ad95274228f5e27a5ed140 (diff)
downloadgcc-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.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 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 */