Differences From Artifact [c1a16c1dcc]:
- File
src/runtime/selector.m
— part of check-in
[0f42b0eafd]
at
2018-01-21 22:16:23
on branch trunk
— Allow building the runtime as a .framework
This also renames ObjFW-RT to ObjFW_RT, as hyphens should not be in
framework names. (user: js, size: 3464) [annotate] [blame] [check-ins using] [more...]
To Artifact [7ee8175e8f]:
- File src/runtime/selector.m — part of check-in [2d8aa8b1e6] at 2018-04-29 19:26:23 on branch trunk — runtime: Specify m68k registers for most functions (user: js, size: 3544) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
65 66 67 68 69 70 71 | rsel->uid = selectors_cnt++; objc_hashtable_set(selectors, name, rsel); objc_sparsearray_set(selector_names, (uint32_t)rsel->uid, (void *)name); } SEL | | | 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | rsel->uid = selectors_cnt++; objc_hashtable_set(selectors, name, rsel); objc_sparsearray_set(selector_names, (uint32_t)rsel->uid, (void *)name); } SEL sel_registerName(const char *name OBJC_M68K_REG("a0")) { const struct objc_abi_selector *rsel; struct objc_abi_selector *sel; objc_global_mutex_lock(); if (selectors != NULL && |
︙ | ︙ | |||
112 113 114 115 116 117 118 | return; for (sel = symtab->sel_refs; sel->name != NULL; sel++) objc_register_selector(sel); } const char * | | | | 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | return; for (sel = symtab->sel_refs; sel->name != NULL; sel++) objc_register_selector(sel); } const char * sel_getName(SEL sel OBJC_M68K_REG("a0")) { const char *ret; objc_global_mutex_lock(); ret = objc_sparsearray_get(selector_names, (uint32_t)sel->uid); objc_global_mutex_unlock(); return ret; } bool sel_isEqual(SEL sel1 OBJC_M68K_REG("a0"), SEL sel2 OBJC_M68K_REG("a1")) { return (sel1->uid == sel2->uid); } void objc_unregister_all_selectors(void) { |
︙ | ︙ |