68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
-
-
+
-
|
}
SEL
sel_registerName(const char *name)
{
const struct objc_abi_selector *rsel;
struct objc_abi_selector *sel;
char *name_copy;
objc_global_mutex_lock();
if (selectors != NULL &&
(rsel = objc_hashtable_get(selectors, name)) != NULL) {
objc_global_mutex_unlock();
return (SEL)rsel;
}
if ((sel = malloc(sizeof(struct objc_abi_selector))) == NULL)
OBJC_ERROR("Not enough memory to allocate selector!");
if ((name_copy = of_strdup(name)) == NULL)
if ((sel->name = of_strdup(name)) == NULL)
OBJC_ERROR("Not enough memory to allocate selector!");
sel->name = name_copy;
sel->types = NULL;
if ((free_list = realloc(free_list,
sizeof(void *) * (free_list_cnt + 2))) == NULL)
OBJC_ERROR("Not enough memory to allocate selector!");
free_list[free_list_cnt++] = sel;
|