87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
unsigned long version; /* 9 = non-fragile */
unsigned long size;
const char *name;
struct objc_abi_symtab *symtab;
};
struct objc_hashtable_bucket {
const char *key;
const void *obj;
uint32_t hash;
};
struct objc_hashtable {
uint32_t count;
uint32_t last_idx;
struct objc_hashtable_bucket **data;
};
struct objc_sparsearray {
struct objc_sparsearray_level2 *buckets[256];
};
|
<
|
|
>
|
|
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
unsigned long version; /* 9 = non-fragile */
unsigned long size;
const char *name;
struct objc_abi_symtab *symtab;
};
struct objc_hashtable_bucket {
const void *key, *obj;
uint32_t hash;
};
struct objc_hashtable {
uint32_t (*hash)(const void *key);
bool (*equal)(const void *key1, const void *key2);
uint32_t count, size;
struct objc_hashtable_bucket **data;
};
struct objc_sparsearray {
struct objc_sparsearray_level2 *buckets[256];
};
|
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
extern void objc_unregister_all_categories(void);
extern void objc_initialize_class(Class);
extern void objc_update_dtable(Class);
extern void objc_register_all_classes(struct objc_abi_symtab*);
extern Class objc_classname_to_class(const char*, bool);
extern void objc_unregister_class(Class);
extern void objc_unregister_all_classes(void);
extern uint32_t objc_hash_string(const char*);
extern struct objc_hashtable* objc_hashtable_new(uint32_t);
extern void objc_hashtable_set(struct objc_hashtable*, const char*,
const void*);
extern void* objc_hashtable_get(struct objc_hashtable*, const char*);
extern void objc_hashtable_free(struct objc_hashtable *h);
extern void objc_register_selector(struct objc_abi_selector*);
extern void objc_register_all_selectors(struct objc_abi_symtab*);
extern void objc_unregister_all_selectors(void);
extern struct objc_sparsearray* objc_sparsearray_new(void);
extern void objc_sparsearray_copy(struct objc_sparsearray*,
struct objc_sparsearray*);
|
|
>
|
>
|
|
|
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
extern void objc_unregister_all_categories(void);
extern void objc_initialize_class(Class);
extern void objc_update_dtable(Class);
extern void objc_register_all_classes(struct objc_abi_symtab*);
extern Class objc_classname_to_class(const char*, bool);
extern void objc_unregister_class(Class);
extern void objc_unregister_all_classes(void);
extern uint32_t objc_hash_string(const void*);
extern bool objc_equal_string(const void*, const void*);
extern struct objc_hashtable* objc_hashtable_new(uint32_t (*)(const void*),
bool (*)(const void*, const void*), uint32_t);
extern void objc_hashtable_set(struct objc_hashtable*, const void*,
const void*);
extern void* objc_hashtable_get(struct objc_hashtable*, const void*);
extern void objc_hashtable_free(struct objc_hashtable *h);
extern void objc_register_selector(struct objc_abi_selector*);
extern void objc_register_all_selectors(struct objc_abi_symtab*);
extern void objc_unregister_all_selectors(void);
extern struct objc_sparsearray* objc_sparsearray_new(void);
extern void objc_sparsearray_copy(struct objc_sparsearray*,
struct objc_sparsearray*);
|