45 lines
2.3 KiB
C
45 lines
2.3 KiB
C
|
/* This structure used to be public, but is now private to the runtime. */
|
||
|
|
||
|
/*
|
||
|
** 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.
|
||
|
*/
|
||
|
struct objc_class {
|
||
|
MetaClass class_pointer; /* Pointer to the class's
|
||
|
meta class. */
|
||
|
struct objc_class* super_class; /* Pointer to the super
|
||
|
class. NULL for class
|
||
|
Object. */
|
||
|
const char* name; /* Name of the class. */
|
||
|
long version; /* Unknown. */
|
||
|
unsigned long info; /* Bit mask. See class masks
|
||
|
defined above. */
|
||
|
long instance_size; /* Size in bytes of the class.
|
||
|
The sum of the class
|
||
|
definition and all super
|
||
|
class definitions. */
|
||
|
struct objc_ivar_list* ivars; /* Pointer to a structure that
|
||
|
describes the instance
|
||
|
variables in the class
|
||
|
definition. NULL indicates
|
||
|
no instance variables. Does
|
||
|
not include super class
|
||
|
variables. */
|
||
|
struct objc_method_list* methods; /* Linked list of instance
|
||
|
methods defined for the
|
||
|
class. */
|
||
|
struct sarray * dtable; /* Pointer to instance
|
||
|
method dispatch table. */
|
||
|
struct objc_class* subclass_list; /* Subclasses */
|
||
|
struct objc_class* sibling_class;
|
||
|
|
||
|
struct objc_protocol_list *protocols; /* Protocols conformed to */
|
||
|
void* gc_object_type;
|
||
|
};
|