aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Glatting <dennisg@gnu.org>1991-12-31 20:16:08 +0000
committerDennis Glatting <dennisg@gnu.org>1991-12-31 20:16:08 +0000
commit94b8bab1ea17fefddf75a8ca56a7c52aee9397b7 (patch)
treeaf4d37451af566f9083e3b01dcbad8b01de4db9a
parent77c9c6c2030065092bcf848d2042032fe463daa5 (diff)
downloadgcc-94b8bab1ea17fefddf75a8ca56a7c52aee9397b7.zip
gcc-94b8bab1ea17fefddf75a8ca56a7c52aee9397b7.tar.gz
gcc-94b8bab1ea17fefddf75a8ca56a7c52aee9397b7.tar.bz2
Deleted index variable stuff. Index variables are a hack to the language.
Cleaned up some documentation. From-SVN: r149
-rw-r--r--gcc/objc/objc.h142
1 files changed, 65 insertions, 77 deletions
diff --git a/gcc/objc/objc.h b/gcc/objc/objc.h
index 2c19a7d..7628679 100644
--- a/gcc/objc/objc.h
+++ b/gcc/objc/objc.h
@@ -19,10 +19,13 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- $Header: /usr/user/dennis_glatting/ObjC/c-runtime/include/RCS/ObjC.h,v 0.8 1991/12/01 01:29:29 dennisg Exp dennisg $
+ $Header: /usr/user/dennis_glatting/ObjC/c-runtime/include/RCS/ObjC.h,v 0.9 1991/12/10 12:04:22 dennisg Exp dennisg $
$Author: dennisg $
- $Date: 1991/12/01 01:29:29 $
+ $Date: 1991/12/10 12:04:22 $
$Log: ObjC.h,v $
+ * Revision 0.9 1991/12/10 12:04:22 dennisg
+ * Cleaned up file format for a distribution.
+ *
* Revision 0.8 1991/12/01 01:29:29 dennisg
* modified to remove changes previously made to
* implement posing. posing just got easy.
@@ -134,10 +137,9 @@ typedef id ( *IMP )( id, SEL, ... );
#define _C_STRUCT_B '{'
#define _C_STRUCT_E '}'
-/*
- * These definitions are masks used with
- * the "info" member variable in the class and
- * meta class structures.
+/*
+ * These definitions are masks used with the "info" member variable in the
+ * class and meta class structures.
*/
#define CLS_CLASS 0x1L /* The structure is of type
class (Class_t). */
@@ -156,13 +158,13 @@ typedef id ( *IMP )( id, SEL, ... );
extern BOOL objc_trace;
-/*
- * 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.
+/*
+ * 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.
+ * A Symtab contains a variable length array of pointers to classes and
+ * categories defined in the module.
*/
typedef struct objc_symtab {
u_long sel_ref_cnt; /* Unknown. */
@@ -179,16 +181,14 @@ typedef struct objc_symtab {
} Symtab, *Symtab_t;
-/*
- * The compiler generates one of these structures for each
- * module that composes the executable (eg main.m).
+/*
+ * 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.
+ * 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.
+ * 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 {
u_long version; /* Compiler revision. */
@@ -204,10 +204,9 @@ typedef struct objc_module {
} Module, *Module_t;
-/*
- * The compiler generates one of these structures for a
- * class that has instance variables defined in its
- * specification.
+/*
+ * The compiler generates one of these structures for a class that has
+ * instance variables defined in its specification.
*/
typedef struct objc_ivar* Ivar_t;
typedef struct objc_ivar_list {
@@ -232,13 +231,13 @@ typedef struct objc_ivar_list {
} IvarList, *IvarList_t;
-/*
- * The compiler generates one (or more) of these structures
- * for a class that has methods defined in its specification.
+/*
+ * 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.
+ * 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 Method;
typedef Method* Method_t;
@@ -266,20 +265,16 @@ typedef struct objc_method_list {
/*
- * The compiler generates one of these structures for
- * each class.
+ * The compiler generates one of these structures for each class.
+ *
+ * This structure is the definition for meta classes. By definition a meta
+ * class is the class's class. Its most relevant contribution is that its
+ * method list contain the class's factory methods.
*
- * This structure is the definition for meta classes.
- * By definition a meta class is the class's class. Its
- * most relevant contribution is that its method list
- * contain the class's factory methods.
- *
- * This structure is generated by the compiler in the
- * executable and used by the run-time during normal
- * messaging operations. Therefore some members
- * change type.
- * The compiler generates "char* const" and places a string
- * in the following member variables: isa and super_class.
+ * This structure is generated by the compiler in the executable and used by
+ * the run-time during normal messaging operations. Therefore some members
+ * change type. The compiler generates "char* const" and places a string in
+ * the following member variables: isa and super_class.
*/
typedef struct objc_metaClass {
struct objc_metaClass* isa; /* Pointer to Object meta
@@ -306,17 +301,14 @@ typedef struct objc_metaClass {
/*
- * The compiler generates one of these structures for
- * each class.
+ * The compiler generates one of these structures for each class.
*
- * This structure is the definition for classes.
- *
- * This structure is generated by the compiler in the
- * executable and used by the run-time during normal
- * messaging operations. Therefore some members
- * change type.
- * The compiler generates "char* const" and places a string
- * in the following member variables: super_class.
+ * This structure is the definition for classes.
+ *
+ * This structure is generated by the compiler in the executable and used by
+ * the run-time during normal messaging operations. Therefore some members
+ * change type. The compiler generates "char* const" and places a string in
+ * the following member variables: super_class.
*/
typedef struct objc_class {
MetaClass_t isa; /* Pointer to the class's
@@ -351,10 +343,8 @@ typedef struct objc_class {
/*
- * The compiler generates one of these structures
- * for each category. A class may have many
- * categories and contain both instance and
- * factory methods.
+ * 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
@@ -373,10 +363,10 @@ typedef struct objc_category {
} Category, *Category_t;
-/*
- * Structure used when a message is send to a class's
- * super class. The compiler generates one of these
- * structures and passes it to objc_msgSuper().
+/*
+ * Structure used when a message is send to a class's super class. The
+ * compiler generates one of these structures and passes it to
+ * objc_msgSuper().
*/
typedef struct objc_super {
id receiver; /* Id of the object sending
@@ -385,33 +375,31 @@ typedef struct objc_super {
} Super, *Super_t;
/*
- * _alloc points to the function, called through
- * class_createInstance(), used to allocate memory for
- * new instances.
+ * _alloc points to the function, called through class_createInstance(), used
+ * to allocate memory for new instances.
*/
-extern id (*_alloc)(Class_t aClass, u_int indexedIvarBytes);
+extern id (*_alloc)(Class_t aClass);
/*
- * _dealloc points to the function, called
- * through object_dispose(), used to free instances.
+ * _dealloc points to the function, called through object_dispose(), used to
+ * free instances.
*/
extern id (*_dealloc)(id aObject);
/*
- * _realloc points to the function, called through
- * object_realloc(), used to reallocate memory for an object
+ * _realloc points to the function, called through object_realloc(), used to
+ * reallocate memory for an object
*/
-extern id (*_realloc)(id aObject, u_int numBytes);
+extern id (*_realloc)(id aObject, u_int newSize);
/*
- * _copy points to the function, called through
- * object_copy(), used to create an exact copy of an object.
+ * _copy points to the function, called through object_copy(), used to create
+ * an exact copy of an object.
*/
-extern id (*_copy)(id aObject, u_int indexedIvarBytes);
+extern id (*_copy)(id aObject);
/*
- * _error points to the function that the run-time
- * system calls in response to an error. By default,
- * it prints formatted error messages to the standard
- * error stream and calls abort() to produce a core file.
+ * _error points to the function that the run-time system calls in response
+ * to an error. By default, it prints formatted error messages to the
+ * standard error stream and calls abort() to produce a core file.
*/
extern void (*_error)(id aObject, const char* fmt, va_list ap);