OSDN Git Service

(objc_module): Eliminate statics variable.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 15 Mar 1997 12:57:55 +0000 (12:57 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 15 Mar 1997 12:57:55 +0000 (12:57 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13713 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/objc/objc-api.h

index 5962f02..2f5e8de 100644 (file)
@@ -134,6 +134,16 @@ objc_error_handler objc_set_error_handler(objc_error_handler func);
 extern BOOL objc_trace;
 
 
+/* For every class which happens to have statically allocated instances in
+   this module, one OBJC_STATIC_INSTANCES is allocated by the compiler.
+   INSTANCES is NULL terminated and points to all statically allocated
+   instances of this class.  */
+struct objc_static_instances
+{
+  char *class_name;
+  id instances[0];
+};
+
 /*
 ** Whereas a Module (defined further down) is the root (typically) of a file,
 ** a Symtab is the root of the class and category definitions within the
@@ -150,23 +160,16 @@ typedef struct objc_symtab {
   unsigned short cat_def_cnt;                   /* Number of categories 
                                                   compiled (defined) in the 
                                                   module. */
+
   void      *defs[1];                           /* Variable array of pointers.
                                                   cls_def_cnt of type Class 
                                                   followed by cat_def_cnt of
-                                                  type Category_t. */
+                                                  type Category_t, followed
+                                                 by a NULL terminated array
+                                                 of objc_static_instances. */
 } Symtab,   *Symtab_t;
 
 
-/* For every class which happens to have statically allocated instances in
-   this module, one OBJC_STATIC_INSTANCES is allocated by the compiler.
-   INSTANCES is NULL terminated and points to all statically allocated
-   instances of this class.  */
-struct objc_static_instances
-{
-  char *class_name;
-  id instances[0];
-};
-
 /*
 ** The compiler generates one of these structures for each module that
 ** composes the executable (eg main.m).  
@@ -183,9 +186,6 @@ typedef struct objc_module {
                                                   module was generated.   The 
                                                   name includes the path. */
 
-  /* Pointer to a NULL terminated array of objc_static_instances.  */
-  struct objc_static_instances **statics;
-
   Symtab_t    symtab;                           /* Pointer to the Symtab of
                                                   the module.  The Symtab
                                                   holds an array of 
@@ -443,6 +443,12 @@ BOOL sel_is_mapped (SEL aSel);
 
 extern id class_create_instance(Class class);
 
+/* You should call this function immediately after a bundle has loaded the
+   code. This function sends the +load message to all classes/categories
+   just loaded and then calls the _objc_load_callback function for each
+   class/category. */
+extern void objc_send_load (void);
+
 static inline const char *
 class_get_class_name(Class class)
 {