Created
April 23, 2009 00:52
-
-
Save copumpkin/100203 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Something like this, anyway ;) | |
// by pumpkin | |
struct class_info_t { | |
struct class_info_t *metaclass; // maybe not exactly a class_info_t, maybe an info_table_t | |
struct class_info_t *superclass; // as above | |
void *cache; | |
void *vtable; | |
struct info_table_t *info; | |
} | |
struct info_table_t { | |
int version; | |
int info; | |
int instance_size; | |
int unk1; | |
char* name_ptr; | |
struct method_list_t *method_list; | |
struct protocol_list_t *protocol_list; | |
struct ivar_list_t *ivar_list; | |
int unk2; | |
struct property_list_t *property_list; | |
} | |
struct method_list_t { | |
int method_size; | |
int method_count; | |
struct method_t methods[]; | |
} | |
struct method_t { | |
char *name; | |
char *type; | |
void *handler; // the actual code that handles the method | |
} | |
struct protocol_list_t { | |
int protocol_count; | |
struct protocol_t protocols[]; | |
} | |
struct protocol_t { | |
int unk; | |
char *name; | |
} | |
struct ivar_list_t { | |
int ivar_size; | |
int ivar_count; | |
struct ivar_t ivars[]; | |
} | |
struct ivar_t { | |
int unk1; | |
char *name; | |
char *type; | |
int unk2; | |
int memsize; | |
} | |
struct property_list_t { | |
int property_size; | |
int property_count; | |
struct property_t properties[]; | |
} | |
struct property_t { | |
char *name; | |
char *info; // C = copy, R = readonly, & = retain | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment