summaryrefslogtreecommitdiff
path: root/libobjc
diff options
context:
space:
mode:
authornicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>2010-12-19 02:12:42 +0000
committernicola <nicola@138bc75d-0d04-0410-961f-82ee72b054a4>2010-12-19 02:12:42 +0000
commitb45af7b269eb8ccc7131ab0bdd68e1ce6e7d3fc2 (patch)
tree2741b3549f5b11c253ebb01486885c0ed2703860 /libobjc
parent30d9a28fbe4f4207eb69fcf75d19814599b259ba (diff)
downloadgcc-b45af7b269eb8ccc7131ab0bdd68e1ce6e7d3fc2.tar.gz
In libobjc/:
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
Diffstat (limited to 'libobjc')
-rw-r--r--libobjc/ChangeLog6
-rw-r--r--libobjc/init.c10
-rw-r--r--libobjc/objc/objc-api.h35
-rw-r--r--libobjc/objc/runtime.h8
4 files changed, 39 insertions, 20 deletions
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index b551ea4f92f..7335e27bac6 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,5 +1,11 @@
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
deprecated/hash.h instead of typedstream.h. Updated comments.
diff --git a/libobjc/init.c b/libobjc/init.c
index 370dea9e0f6..a282d5ef70d 100644
--- a/libobjc/init.c
+++ b/libobjc/init.c
@@ -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
diff --git a/libobjc/objc/objc-api.h b/libobjc/objc/objc-api.h
index d31e13f6bf3..521f79efb37 100644
--- a/libobjc/objc/objc-api.h
+++ b/libobjc/objc/objc-api.h
@@ -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);
diff --git a/libobjc/objc/runtime.h b/libobjc/objc/runtime.h
index 94f5bf7f10a..de8f7016ba4 100644
--- a/libobjc/objc/runtime.h
+++ b/libobjc/objc/runtime.h
@@ -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. */