public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* libobjc - more work on headers (1)
@ 2010-10-10 11:26 Nicola Pero
  0 siblings, 0 replies; only message in thread
From: Nicola Pero @ 2010-10-10 11:26 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1787 bytes --]

Another patch that does another chunk of reorganization of the libobjc headers.  A number of similar patches will follow.  Committed to trunk.

Thanks

2010-10-10  Nicola Pero  <nicola.pero@meta-innovation.com>

        * Makefile.in (OBJC_DEPRECATED_H): Added struct_objc_category.h,
        struct_objc_ivar.h, struct_objc_ivar_list.h, struct_objc_method.h,
        struct_objc_method_list.h, struct_objc_module.h,
        struct_objc_protocol_list.h, struct_objc_symtab.h.
        * objc/deprecated/struct_objc_category.h: New.
        * objc/deprecated/struct_objc_ivar.h: New.
        * objc/deprecated/struct_objc_ivar_list.h: New.
        * objc/deprecated/struct_objc_method.h: New.
        * objc/deprecated/struct_objc_method_list.h: New.
        * objc/deprecated/struct_objc_module.h: New.
        * objc/deprecated/struct_objc_protocol_list.h: New.
        * objc/deprecated/struct_objc_symtab.h: New.
        * objc/deprecated/struct_objc_static_instances.h: New.
        * objc/objc-api.h: Definitions of deprecated structures moved into
        the above header fragment files in objc/deprecated/.  Include the
        files instead of definition the structures here.  Updated
        comments.
        * objc/runtime.h: Updated comments.  Do not include objc-api.h.
        (objc_set_enumeration_mutation_handler): Renamed to
        objc_setEnumerationMutationHandler.
        * objc-foreach.c (objc_set_enumeration_mutation_handler): Renamed
        to objc_setEnumerationMutationHandler.
        * objc/objc-exception.h (objc_set_exception_matcher): Renamed to
        objc_setExceptionMatcher.
        (objc_set_uncaught_exception_handler): Renamed to
        objc_setUncaughtExceptionHandler.
        * exception.c: Same changes.


[-- Attachment #2: patch.diff --]
[-- Type: application/octet-stream, Size: 26287 bytes --]

Index: Makefile.in
===================================================================
--- Makefile.in	(revision 165248)
+++ Makefile.in	(working copy)
@@ -142,9 +142,17 @@ OBJC_DEPRECATED_H = \
   objc_unexpected_exception.h \
   objc_valloc.h \
   sarray.h \
+  struct_objc_category.h \
   struct_objc_class.h \
+  struct_objc_ivar.h \
+  struct_objc_ivar_list.h \
+  struct_objc_method.h \
+  struct_objc_method_list.h \
+  struct_objc_module.h \
   struct_objc_protocol.h \
+  struct_objc_protocol_list.h \
   struct_objc_selector.h \
+  struct_objc_symtab.h \
   typedstream.h 
 
 # Objective-C source files to compile
Index: objc-foreach.c
===================================================================
--- objc-foreach.c	(revision 165248)
+++ objc-foreach.c	(working copy)
@@ -35,7 +35,7 @@ see the files COPYING3 and COPYING.RUNTIME respect
 static void (*__objc_enumeration_mutation_handler)(id) = NULL;
 
 void
-objc_set_enumeration_mutation_handler (void (*handler)(id))
+objc_setEnumerationMutationHandler (void (*handler)(id))
 {
   __objc_enumeration_mutation_handler = handler;
 }
Index: exception.c
===================================================================
--- exception.c	(revision 165248)
+++ exception.c	(working copy)
@@ -69,7 +69,7 @@ static objc_exception_matcher
 __objc_exception_matcher = is_kind_of_exception_matcher;
 
 objc_exception_matcher
-objc_set_exception_matcher (objc_exception_matcher new_matcher)
+objc_setExceptionMatcher (objc_exception_matcher new_matcher)
 {
   objc_exception_matcher old_matcher = __objc_exception_matcher;
   __objc_exception_matcher = new_matcher;
@@ -81,8 +81,8 @@ static objc_uncaught_exception_handler
 __objc_uncaught_exception_handler = NULL;
 
 objc_uncaught_exception_handler
-objc_set_uncaught_exception_handler (objc_uncaught_exception_handler 
-				     new_handler)
+objc_setUncaughtExceptionHandler (objc_uncaught_exception_handler 
+				  new_handler)
 {
   objc_uncaught_exception_handler old_handler 
     = __objc_uncaught_exception_handler;
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 165248)
+++ ChangeLog	(working copy)
@@ -1,5 +1,35 @@
 2010-10-10  Nicola Pero  <nicola.pero@meta-innovation.com>
 
+	* Makefile.in (OBJC_DEPRECATED_H): Added struct_objc_category.h,
+	struct_objc_ivar.h, struct_objc_ivar_list.h, struct_objc_method.h,
+	struct_objc_method_list.h, struct_objc_module.h,
+	struct_objc_protocol_list.h, struct_objc_symtab.h.
+	* objc/deprecated/struct_objc_category.h: New.
+	* objc/deprecated/struct_objc_ivar.h: New.
+	* objc/deprecated/struct_objc_ivar_list.h: New.
+	* objc/deprecated/struct_objc_method.h: New.
+	* objc/deprecated/struct_objc_method_list.h: New.
+	* objc/deprecated/struct_objc_module.h: New.
+	* objc/deprecated/struct_objc_protocol_list.h: New.
+	* objc/deprecated/struct_objc_symtab.h: New.
+	* objc/deprecated/struct_objc_static_instances.h: New.
+	* objc/objc-api.h: Definitions of deprecated structures moved into
+	the above header fragment files in objc/deprecated/.  Include the
+	files instead of definition the structures here.  Updated
+	comments.
+	* objc/runtime.h: Updated comments.  Do not include objc-api.h.
+	(objc_set_enumeration_mutation_handler): Renamed to
+	objc_setEnumerationMutationHandler.
+	* objc-foreach.c (objc_set_enumeration_mutation_handler): Renamed
+	to objc_setEnumerationMutationHandler.
+	* objc/objc-exception.h (objc_set_exception_matcher): Renamed to
+	objc_setExceptionMatcher.
+	(objc_set_uncaught_exception_handler): Renamed to
+	objc_setUncaughtExceptionHandler.
+	* exception.c: Same changes.
+
+2010-10-10  Nicola Pero  <nicola.pero@meta-innovation.com>
+
 	* objc-sync.c: Include objc-private/common.h.
 
 2010-10-10  Nicola Pero  <nicola.pero@meta-innovation.com>
Index: objc/objc-exception.h
===================================================================
--- objc/objc-exception.h	(revision 165248)
+++ objc/objc-exception.h	(working copy)
@@ -89,7 +89,7 @@ typedef int (*objc_exception_matcher)(Class catch_
    multi-threaded environment because other threads may be trying to
    invoke the exception matcher while you change it!  */
 objc_exception_matcher
-objc_set_exception_matcher (objc_exception_matcher new_matcher);
+objc_setExceptionMatcher (objc_exception_matcher new_matcher);
 
 
 /* An 'objc_uncaught_exception_handler' function is a function that
@@ -103,13 +103,8 @@ typedef void (*objc_uncaught_exception_handler)(id
    it.
 */
 objc_uncaught_exception_handler
-objc_set_uncaught_exception_handler (objc_uncaught_exception_handler new_handler);
+objc_setUncaughtExceptionHandler (objc_uncaught_exception_handler new_handler);
 
-
-/* For compatibility with the Apple/NeXT runtime.  */
-#define objc_setExceptionMatcher objc_set_exception_matcher
-#define objc_setUncaughtExceptionHandler objc_set_uncaught_exception_handler
-
 #ifdef __cplusplus
 }
 #endif
Index: objc/deprecated/struct_objc_protocol_list.h
===================================================================
--- objc/deprecated/struct_objc_protocol_list.h	(revision 0)
+++ objc/deprecated/struct_objc_protocol_list.h	(revision 0)
@@ -0,0 +1,5 @@
+struct objc_protocol_list {
+  struct objc_protocol_list *next;
+  size_t count;
+  Protocol *list[1];
+};
Index: objc/deprecated/struct_objc_ivar_list.h
===================================================================
--- objc/deprecated/struct_objc_ivar_list.h	(revision 0)
+++ objc/deprecated/struct_objc_ivar_list.h	(revision 0)
@@ -0,0 +1,10 @@
+typedef struct objc_ivar_list {
+  int   ivar_count;                             /* Number of structures (Ivar) 
+                                                  contained in the list.  One
+                                                  structure per instance 
+                                                  variable defined in the
+                                                  class. */
+  struct objc_ivar ivar_list[1];               /* Variable length 
+                                                  structure. */
+} IvarList, *IvarList_t;
+
Index: objc/deprecated/struct_objc_static_instances.h
===================================================================
--- objc/deprecated/struct_objc_static_instances.h	(revision 0)
+++ objc/deprecated/struct_objc_static_instances.h	(revision 0)
@@ -0,0 +1,14 @@
+/* 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;
+#ifdef __cplusplus
+  id instances[1];
+#else
+  id instances[0];
+#endif
+};
+
Index: objc/deprecated/struct_objc_symtab.h
===================================================================
--- objc/deprecated/struct_objc_symtab.h	(revision 0)
+++ objc/deprecated/struct_objc_symtab.h	(revision 0)
@@ -0,0 +1,23 @@
+/* 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
+   module.  
+   
+   A Symtab contains a variable length array of pointers to classes and
+   categories  defined in the module.   */
+typedef struct objc_symtab {
+  unsigned long sel_ref_cnt;                     /* Unknown. */
+  SEL        refs;                              /* Unknown. */
+  unsigned short cls_def_cnt;                   /* Number of classes compiled
+                                                  (defined) in the module. */
+  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, followed
+						  by a NULL terminated array
+						  of objc_static_instances. */
+} Symtab,   *Symtab_t;
+
Index: objc/deprecated/struct_objc_ivar.h
===================================================================
--- objc/deprecated/struct_objc_ivar.h	(revision 0)
+++ objc/deprecated/struct_objc_ivar.h	(revision 0)
@@ -0,0 +1,15 @@
+/*
+** The compiler generates one of these structures for a class that has
+** instance variables defined in its specification. 
+*/
+typedef struct objc_ivar {
+    const char* ivar_name;                      /* Name of the instance
+                                                  variable as entered in the
+                                                  class definition. */
+    const char* ivar_type;                      /* Description of the Ivar's
+                                                  type.  Useful for 
+                                                  debuggers. */
+    int        ivar_offset;                    /* Byte offset from the base 
+                                                  address of the instance 
+                                                  structure to the variable. */
+} *Ivar_t;
Index: objc/deprecated/struct_objc_method_list.h
===================================================================
--- objc/deprecated/struct_objc_method_list.h	(revision 0)
+++ objc/deprecated/struct_objc_method_list.h	(revision 0)
@@ -0,0 +1,9 @@
+typedef struct objc_method_list {
+  struct objc_method_list*  method_next;    /* This variable is used to link 
+                                               a method list to another.  It 
+                                               is a singly linked list. */
+  int            method_count;              /* Number of methods defined in 
+                                               this structure. */
+  Method method_list[1];                    /* Variable length 
+                                               structure. */
+} MethodList, *MethodList_t;
Index: objc/deprecated/struct_objc_category.h
===================================================================
--- objc/deprecated/struct_objc_category.h	(revision 0)
+++ objc/deprecated/struct_objc_category.h	(revision 0)
@@ -0,0 +1,21 @@
+/*
+** The compiler generates one of these structures for each category.  A class
+** may have many categories and contain both instance and factory methods.  
+*/
+typedef struct objc_category {
+  const char*   category_name;                /* Name of the category.  Name
+                                                contained in the () of the
+                                                category definition. */
+  const char*   class_name;                   /* Name of the class to which
+                                                the category belongs. */
+  MethodList_t  instance_methods;             /* Linked list of instance
+                                                methods defined in the 
+                                                category. NULL indicates no
+                                                instance methods defined. */
+  MethodList_t  class_methods;                /* Linked list of factory 
+                                                methods defined in the
+                                                category.  NULL indicates no
+                                                class methods defined. */
+  struct objc_protocol_list *protocols;	      /* List of Protocols 
+					         conformed to */
+} Category, *Category_t;
Index: objc/deprecated/struct_objc_method.h
===================================================================
--- objc/deprecated/struct_objc_method.h	(revision 0)
+++ objc/deprecated/struct_objc_method.h	(revision 0)
@@ -0,0 +1,21 @@
+/*
+** The compiler generates one (or more) of these structures for a class that
+** has methods defined in its specification. 
+** 
+** The implementation of a class can be broken into separate pieces in a file
+** and categories can break them across modules. To handle this problem is a
+** singly linked list of methods. 
+*/
+typedef struct objc_method {
+  SEL         method_name;                  /* This variable is the method's 
+                                               name.  It is a char*. 
+                                               The unique integer passed to 
+                                               objc_msg_send is a char* too.  
+                                               It is compared against 
+                                               method_name using strcmp. */
+  const char* method_types;                 /* Description of the method's
+                                               parameter list.  Useful for
+                                               debuggers. */
+  IMP         method_imp;                   /* Address of the method in the 
+                                               executable. */
+} Method, *Method_t;
Index: objc/deprecated/struct_objc_module.h
===================================================================
--- objc/deprecated/struct_objc_module.h	(revision 0)
+++ objc/deprecated/struct_objc_module.h	(revision 0)
@@ -0,0 +1,24 @@
+/*
+** The compiler generates one of these structures for each module that
+** composes the executable (eg main.m).  
+** 
+** This data structure is the root of the definition tree for the module.  
+** 
+** A collect program runs between ld stages and creates a ObjC ctor array. 
+** That array holds a pointer to each module structure of the executable. 
+*/
+typedef struct objc_module {
+  unsigned long version; /* Version of the Module data structure.  */
+  unsigned long size;    /* sizeof(Module) according to the compiler -
+			    only used to sanity check that it matches
+			    sizeof(Module) according to the
+			    runtime.  */
+  const char* name;      /* Name of the file used to compile the
+			    module - not set by modern compilers for
+			    security reasons.  */
+  Symtab_t    symtab;    /* Pointer to the Symtab of the module.  The
+			    Symtab holds an array of pointers to the
+			    classes and categories defined in the
+			    module. */
+} Module, *Module_t;
+
Index: objc/runtime.h
===================================================================
--- objc/runtime.h	(revision 165248)
+++ objc/runtime.h	(working copy)
@@ -26,12 +26,31 @@ see the files COPYING3 and COPYING.RUNTIME respect
 #ifndef __objc_runtime_INCLUDE_GNU
 #define __objc_runtime_INCLUDE_GNU
 
+/*
+  This file declares the "modern" GNU Objective-C Runtime API.
+  Include this file to use it.
+
+  This API is replacing the "traditional" GNU Objective-C Runtime API
+  (declared in objc/objc-api.h) which is the one supported by older
+  versions of the GNU Objective-C Runtime.  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.
+*/
+/*
+#ifdef __objc_api_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: This file is incomplete.  */
+
 #include "objc.h"
 
-/* The following is temporary, until all code from objc-api.h has been
-   moved into this file and objc-api.h will include runtime.h.  */
-#include "objc-api.h"
-
 /* 'objc_enumerationMutation()' is called when a collection is
    mutated while being "fast enumerated".  That is a hard error, and
    objc_enumerationMutation is called to deal with it.  'collection'
@@ -63,7 +82,7 @@ objc_EXPORT void objc_enumerationMutation (id coll
    You probably shouldn't use this function unless you are writing
    your own Foundation library.
 */
-objc_EXPORT void objc_set_enumeration_mutation_handler (void (*handler)(id));
+objc_EXPORT void objc_setEnumerationMutationHandler (void (*handler)(id));
 
 /* This structure (used during fast enumeration) is automatically
    defined by the compiler (it is as if this definition was always
@@ -82,7 +101,5 @@ struct __objcFastEnumerationState
   unsigned long extra[5];
 };
 */
-/* For compatibility with the Apple/NeXT runtime.  */
-#define objc_setEnumerationMutationHandler objc_set_enumeration_mutation_handler
 
 #endif
Index: objc/objc-api.h
===================================================================
--- objc/objc-api.h	(revision 165248)
+++ objc/objc-api.h	(working copy)
@@ -23,10 +23,30 @@ a copy of the GCC Runtime Library Exception along
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
-
 #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.
+*/
+/*
+#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
+*/
+
 #include "objc.h"
 #ifndef GNU_LIBOBJC_COMPILING_LIBOBJC_ITSELF
 # include "deprecated/hash.h"
@@ -91,135 +111,16 @@ struct objc_method_description
 
 #include "deprecated/objc_error.h"
 
-/* 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;
-#ifdef __cplusplus
-  id instances[1];
-#else
-  id instances[0];
-#endif
-};
+#include "deprecated/struct_objc_static_instances.h"
+#include "deprecated/struct_objc_symtab.h"
+#include "deprecated/struct_objc_module.h"
+#include "deprecated/struct_objc_ivar.h"
+#include "deprecated/struct_objc_ivar_list.h"
+#include "deprecated/struct_objc_method.h"
+#include "deprecated/struct_objc_method_list.h"
+#include "deprecated/struct_objc_protocol_list.h"
 
-/* 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
-   module.  
-   
-   A Symtab contains a variable length array of pointers to classes and
-   categories  defined in the module.   */
-typedef struct objc_symtab {
-  unsigned long sel_ref_cnt;                     /* Unknown. */
-  SEL        refs;                              /* Unknown. */
-  unsigned short cls_def_cnt;                   /* Number of classes compiled
-                                                  (defined) in the module. */
-  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, followed
-						  by a NULL terminated array
-						  of objc_static_instances. */
-} Symtab,   *Symtab_t;
-
-
 /*
-** The compiler generates one of these structures for each module that
-** composes the executable (eg main.m).  
-** 
-** This data structure is the root of the definition tree for the module.  
-** 
-** A collect program runs between ld stages and creates a ObjC ctor array. 
-** That array holds a pointer to each module structure of the executable. 
-*/
-typedef struct objc_module {
-  unsigned long version; /* Version of the Module data structure.  */
-  unsigned long size;    /* sizeof(Module) according to the compiler -
-			    only used to sanity check that it matches
-			    sizeof(Module) according to the
-			    runtime.  */
-  const char* name;      /* Name of the file used to compile the
-			    module - not set by modern compilers for
-			    security reasons.  */
-  Symtab_t    symtab;    /* Pointer to the Symtab of the module.  The
-			    Symtab holds an array of pointers to the
-			    classes and categories defined in the
-			    module. */
-} Module, *Module_t;
-
-
-/*
-** The compiler generates one of these structures for a class that has
-** instance variables defined in its specification. 
-*/
-typedef struct objc_ivar {
-    const char* ivar_name;                      /* Name of the instance
-                                                  variable as entered in the
-                                                  class definition. */
-    const char* ivar_type;                      /* Description of the Ivar's
-                                                  type.  Useful for 
-                                                  debuggers. */
-    int        ivar_offset;                    /* Byte offset from the base 
-                                                  address of the instance 
-                                                  structure to the variable. */
-} *Ivar_t;
-
-typedef struct objc_ivar_list {
-  int   ivar_count;                             /* Number of structures (Ivar) 
-                                                  contained in the list.  One
-                                                  structure per instance 
-                                                  variable defined in the
-                                                  class. */
-  struct objc_ivar ivar_list[1];               /* Variable length 
-                                                  structure. */
-} IvarList, *IvarList_t;
-
-
-/*
-** The compiler generates one (or more) of these structures for a class that
-** has methods defined in its specification. 
-** 
-** The implementation of a class can be broken into separate pieces in a file
-** and categories can break them across modules. To handle this problem is a
-** singly linked list of methods. 
-*/
-typedef struct objc_method {
-  SEL         method_name;                  /* This variable is the method's 
-                                               name.  It is a char*. 
-                                               The unique integer passed to 
-                                               objc_msg_send is a char* too.  
-                                               It is compared against 
-                                               method_name using strcmp. */
-  const char* method_types;                 /* Description of the method's
-                                               parameter list.  Useful for
-                                               debuggers. */
-  IMP         method_imp;                   /* Address of the method in the 
-                                               executable. */
-} Method, *Method_t;
-
-typedef struct objc_method_list {
-  struct objc_method_list*  method_next;    /* This variable is used to link 
-                                               a method list to another.  It 
-                                               is a singly linked list. */
-  int            method_count;              /* Number of methods defined in 
-                                               this structure. */
-  Method method_list[1];                    /* Variable length 
-                                               structure. */
-} MethodList, *MethodList_t;
-
-struct objc_protocol_list {
-  struct objc_protocol_list *next;
-  size_t count;
-  Protocol *list[1];
-};
-
-/*
 ** This is used to assure consistent access to the info field of 
 ** classes
 */
@@ -266,27 +167,7 @@ struct objc_method_description
      (cls)->info >>= (HOST_BITS_PER_LONG/2); \
      __CLS_SETINFO(cls, (((unsigned long)num) << (HOST_BITS_PER_LONG/2))); })
 
-/*
-** The compiler generates one of these structures for each category.  A class
-** may have many categories and contain both instance and factory methods.  
-*/
-typedef struct objc_category {
-  const char*   category_name;                /* Name of the category.  Name
-                                                contained in the () of the
-                                                category definition. */
-  const char*   class_name;                   /* Name of the class to which
-                                                the category belongs. */
-  MethodList_t  instance_methods;             /* Linked list of instance
-                                                methods defined in the 
-                                                category. NULL indicates no
-                                                instance methods defined. */
-  MethodList_t  class_methods;                /* Linked list of factory 
-                                                methods defined in the
-                                                category.  NULL indicates no
-                                                class methods defined. */
-  struct objc_protocol_list *protocols;	      /* List of Protocols 
-					         conformed to */
-} Category, *Category_t;
+#include "deprecated/struct_objc_category.h"
 
 /* We include message.h for compatibility with the old objc-api.h
    which included the declarations currently in message.h.  The

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-10-10 11:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-10 11:26 libobjc - more work on headers (1) Nicola Pero

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).