From 1501d0941a5d845d923b30c6199ce0f8b792bdc8 Mon Sep 17 00:00:00 2001 From: Nicola Pero <nicola.pero@meta-innovation.com> Date: Sun, 17 Oct 2010 11:01:31 +0000 Subject: In libobjc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> In libobjc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> * init.c (objc_send_load): Do not wait for NXConstantString to be registered before executing +load. There is no point if -fconstant-string-class=xxx is used when compiling all modules, as is the case for almost all users. * linking.m (__objc_linking): Do not try to forcefully link in NXConstantString. In gcc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com> * doc/objc.texi (What you can and what you cannot do in +load): Document that sending messages to constant string objects in +load is not guaranteed to work. From-SVN: r165583 --- libobjc/init.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'libobjc/init.c') diff --git a/libobjc/init.c b/libobjc/init.c index dd8789c9cac..d87a587a8af 100644 --- a/libobjc/init.c +++ b/libobjc/init.c @@ -444,8 +444,7 @@ class_is_subclass_of_class (Class class, Class superclass) their superclasses are not yet known to the runtime. */ static struct objc_list *unresolved_classes = 0; -/* Extern function used to reference the Object and NXConstantString - classes. */ +/* Extern function used to reference the Object class. */ extern void __objc_force_linking (void); @@ -755,11 +754,9 @@ objc_send_load (void) return; } - /* Special check to allow creating and sending messages to constant - strings in +load methods. If these classes are not yet known, - even if all the other classes are known, delay sending of +load. */ - if (! objc_lookup_class ("NXConstantString") || - ! objc_lookup_class ("Object")) + /* Special check. If 'Object', which is used by meta-classes, has + not been loaded yet, delay sending of +load. */ + if (! objc_lookup_class ("Object")) return; /* Iterate over all modules in the __objc_module_list and call on -- cgit v1.2.1