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