Overview
Comment: | objc_hashtable_alloc() -> objc_hashtable_new().
For consistency. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | runtime |
Files: | files | file ages | folders |
SHA3-256: |
963db3089f6d75de66a06b7e53562e1a |
User & Date: | js on 2012-05-10 18:21:18 |
Other Links: | branch diff | manifest | tags |
Context
2012-05-10
| ||
18:38 | Return objects as void* instead of const void*. check-in: bc531024f5 user: js tags: runtime | |
18:21 | objc_hashtable_alloc() -> objc_hashtable_new(). check-in: 963db3089f user: js tags: runtime | |
2012-05-09
| ||
13:55 | Initialize classes on the first dispatch. check-in: dcf845546a user: js tags: runtime | |
Changes
Modified src/runtime/category.m from [e7600b0d22] to [c947f89bcc].
︙ | ︙ | |||
45 46 47 48 49 50 51 | static void register_category(struct objc_abi_category *cat) { struct objc_abi_category **cats; Class cls = objc_classname_to_class(cat->class_name); if (categories == NULL) | | | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | static void register_category(struct objc_abi_category *cat) { struct objc_abi_category **cats; Class cls = objc_classname_to_class(cat->class_name); if (categories == NULL) categories = objc_hashtable_new(2); cats = (struct objc_abi_category**)objc_hashtable_get(categories, cat->class_name); if (cats != NULL) { struct objc_abi_category **ncats; size_t i; |
︙ | ︙ |
Modified src/runtime/class.m from [16b932ec92] to [db289f8cb1].
︙ | ︙ | |||
30 31 32 33 34 35 36 | static size_t load_queue_cnt = 0; static struct objc_sparsearray *empty_dtable = NULL; static void register_class(struct objc_abi_class *cls) { if (classes == NULL) | | | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | static size_t load_queue_cnt = 0; static struct objc_sparsearray *empty_dtable = NULL; static void register_class(struct objc_abi_class *cls) { if (classes == NULL) classes = objc_hashtable_new(2); objc_hashtable_set(classes, cls->name, cls); if (empty_dtable == NULL) empty_dtable = objc_sparsearray_new(); cls->dtable = empty_dtable; |
︙ | ︙ |
Modified src/runtime/hashtable.m from [f05f1f70fa] to [2108c2f8fb].
︙ | ︙ | |||
42 43 44 45 46 47 48 | hash ^= (hash >> 11); hash += (hash << 15); return hash; } struct objc_hashtable* | | | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | hash ^= (hash >> 11); hash += (hash << 15); return hash; } struct objc_hashtable* objc_hashtable_new(uint32_t size) { struct objc_hashtable *h; uint32_t i; if ((h = malloc(sizeof(struct objc_hashtable))) == NULL) ERROR("Not enough memory to allocate hash table!"); |
︙ | ︙ |
Modified src/runtime/runtime-private.h from [0a8ea1ad61] to [cfeaa72523].
︙ | ︙ | |||
143 144 145 146 147 148 149 | extern void objc_free_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*); extern void objc_free_all_classes(void); extern uint32_t objc_hash_string(const char*); | | | 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | extern void objc_free_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*); extern void objc_free_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 const void* objc_hashtable_get(struct objc_hashtable*, const char*); extern void objc_hashtable_free(struct objc_hashtable *h); extern BOOL objc_hashtable_warn_on_collision; extern void objc_register_selector(struct objc_abi_selector*); extern void objc_register_all_selectors(struct objc_abi_symtab*); |
︙ | ︙ |