]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/gcc-tumbl.git/commitdiff
In libobjc/:
authornicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 19 Dec 2010 02:12:42 +0000 (02:12 +0000)
committernicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 19 Dec 2010 02:12:42 +0000 (02:12 +0000)
2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>

* init.c: Updated comments.
* objc/objc-api.h: Updated comments.
* objc/runtime.h (_objc_load_callback): Declare.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168044 138bc75d-0d04-0410-961f-82ee72b054a4

libobjc/ChangeLog
libobjc/init.c
libobjc/objc/objc-api.h
libobjc/objc/runtime.h

index b551ea4f92f956e582dba968f5068752c61ea838..7335e27bac6e4e829f05f15dc2fd6905bb10b58a 100644 (file)
@@ -1,3 +1,9 @@
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * init.c: Updated comments.
+       * objc/objc-api.h: Updated comments.
+       * objc/runtime.h (_objc_load_callback): Declare.
+       
 2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        * objc/Object.h: Include deprecated/typedstream.h and
index 370dea9e0f64958be4c56609674b716e7fce26b6..a282d5ef70d3467a4ee955373698d8ef41876ca9 100644 (file)
@@ -83,11 +83,7 @@ static void __objc_init_protocol (struct objc_protocol *protocol);
 /* Add protocol to class.  */
 static void __objc_class_add_protocols (Class, struct objc_protocol_list *);
 
-/* This is a hook which is called by __objc_exec_class every time a
-   class or a category is loaded into the runtime.  This may e.g. help
-   a dynamic loader determine the classes that have been loaded when
-   an object file is dynamically linked in.  */
-/* TODO: This needs to be declared in a public file with the new API.  */
+/* Load callback hook.  */
 void (*_objc_load_callback) (Class class, struct objc_category *category); /* !T:SAFE */
 
 /* Are all categories/classes resolved?  */
@@ -724,6 +720,10 @@ __objc_exec_class (struct objc_module *module)
   objc_send_load ();
 
   objc_mutex_unlock (__objc_runtime_mutex);
+
+  /* TODO: Do we need to add a call to __objc_resolve_class_links()
+     here ?  gnustep-base does it manually after it loads a module.
+     Shouldn't we do it automatically ?  */
 }
 
 static void
index d31e13f6bf3d553dc9cfa3822e704a9bfefba991..521f79efb3746d51b103284af9d0f63ab41b23e0 100644 (file)
@@ -26,25 +26,28 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #ifndef __objc_api_INCLUDE_GNU
 #define __objc_api_INCLUDE_GNU
 
-/*
-  This file declares the "traditional" GNU Objective-C Runtime API.
-  It is the API supported by older versions of the GNU Objective-C
-  Runtime.  Include this file to use it.
-
-  This API is being replaced by the "modern" GNU Objective-C Runtime
-  API, which is declared in objc/runtime.h.  The "modern" API is very
-  similar to the API used by the modern Apple/NeXT runtime.
-
-  Because the two APIs have some conflicting definitions (in
-  particular, Method and Category are defined differently) you should
-  include either objc/objc-api.h (to use the traditional GNU
-  Objective-C Runtime API) or objc/runtime.h (to use the modern GNU
-  Objective-C Runtime API), but not both.
-*/
+/* This file declares the "traditional" GNU Objective-C Runtime API.
+   It is the API supported by older versions of the GNU Objective-C
+   Runtime.  Include this file to use it.
+
+   This API is being replaced by the "modern" GNU Objective-C Runtime
+   API, which is declared in objc/runtime.h.  The "modern" API is very
+   similar to the API used by the modern Apple/NeXT runtime.
+
+   The last version of GCC supporting the traditional API is GCC 4.6.
+   This file will not exist in later versions of GCC.
+
+   Because the two APIs have some conflicting definitions (in
+   particular, Method and Category are defined differently) you should
+   include either objc/objc-api.h (to use the traditional GNU
+   Objective-C Runtime API) or objc/runtime.h (to use the modern GNU
+   Objective-C Runtime API), but not both.  */
 #ifdef __objc_runtime_INCLUDE_GNU
 # error You can not include both objc/objc-api.h and objc/runtime.h.  Include objc/objc-api.h for the traditional GNU Objective-C Runtime API and objc/runtime.h for the modern one.
 #endif
 
+/* TODO: A deprecation warning any time the file is included ? */
+
 #include "objc.h"
 #ifndef GNU_LIBOBJC_COMPILING_LIBOBJC_ITSELF
 # include "deprecated/hash.h"
@@ -182,6 +185,8 @@ typedef struct objc_category Category, *Category_t;
 ** objc_get_class if the runtime is not able to find the class.
 ** This may e.g. try to load in the class using dynamic loading.
 ** The function is guaranteed to be passed a non-NULL name string.
+** In the Modern API, this is replaced by
+** objc_setGetUnknownClassHandler ().
 */
 objc_EXPORT Class (*_objc_lookup_class)(const char *name);
 
index 94f5bf7f10aea8fc83d16d840debdcb9550b8722..de8f7016ba4cdd186f41e754037c67d5d2e8c27f 100644 (file)
@@ -876,6 +876,14 @@ objc_EXPORT Protocol **protocol_copyProtocolList (Protocol *protocol, unsigned i
 
 /* TODO: Add all the other functions in the API.  */
 
+/** Implementation: the following hook is in init.c.  */
+
+/* This is a hook which is called by __objc_exec_class every time a
+   class or a category is loaded into the runtime.  This may e.g. help
+   a dynamic loader determine the classes that have been loaded when
+   an object file is dynamically linked in.  */
+objc_EXPORT void (*_objc_load_callback)(Class _class, struct objc_category *category);
+
 
 /** Implementation: the following functions are in objc-foreach.c.  */