Differences From Artifact [2ee4c27804]:
- File src/runtime/class.m — part of check-in [1633ea5d2a] at 2012-07-15 00:45:11 on branch trunk — Fix a bug in free_class. (user: js, size: 11603) [annotate] [blame] [check-ins using]
To Artifact [0f8bf1f4e6]:
- File
src/runtime/class.m
— part of check-in
[345eb93240]
at
2012-07-17 01:09:50
on branch trunk
— Rename ERROR() to OBJC_ERROR().
ERROR seems to be defined on MinGW32 and it's likely that it's also used
on other systems, thus it's better to prefix it with OBJC_. (user: js, size: 11633) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
176 177 178 179 180 181 182 | add_subclass(Class cls) { size_t i; if (cls->superclass->subclass_list == NULL) { if ((cls->superclass->subclass_list = malloc(2 * sizeof(Class))) == NULL) | | | | 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | add_subclass(Class cls) { size_t i; if (cls->superclass->subclass_list == NULL) { if ((cls->superclass->subclass_list = malloc(2 * sizeof(Class))) == NULL) OBJC_ERROR("Not enough memory for subclass list of " "class %s!", cls->superclass->name); cls->superclass->subclass_list[0] = cls; cls->superclass->subclass_list[1] = Nil; return; } for (i = 0; cls->superclass->subclass_list[i] != Nil; i++); cls->superclass->subclass_list = realloc(cls->superclass->subclass_list, (i + 2) * sizeof(Class)); if (cls->superclass->subclass_list == NULL) OBJC_ERROR("Not enough memory for subclass list of class %s\n", cls->superclass->name); cls->superclass->subclass_list[i] = cls; cls->superclass->subclass_list[i + 1] = Nil; } static void |
︙ | ︙ | |||
312 313 314 315 316 317 318 | load_queue = malloc(sizeof(Class)); else load_queue = realloc(load_queue, sizeof(Class) * (load_queue_cnt + 1)); if (load_queue == NULL) | | | 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 | load_queue = malloc(sizeof(Class)); else load_queue = realloc(load_queue, sizeof(Class) * (load_queue_cnt + 1)); if (load_queue == NULL) OBJC_ERROR("Not enough memory for load " "queue!"); load_queue[load_queue_cnt++] = cls; } } else cls->info |= OBJC_CLASS_INFO_LOADED; } |
︙ | ︙ | |||
342 343 344 345 346 347 348 | load_queue[i] = load_queue[load_queue_cnt]; load_queue = realloc(load_queue, sizeof(Class) * load_queue_cnt); if (load_queue == NULL) | | | 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 | load_queue[i] = load_queue[load_queue_cnt]; load_queue = realloc(load_queue, sizeof(Class) * load_queue_cnt); if (load_queue == NULL) OBJC_ERROR("Not enough memory for load queue!"); } } } inline Class objc_lookup_class(const char *name) { |
︙ | ︙ | |||
376 377 378 379 380 381 382 | Class objc_get_class(const char *name) { Class cls; if ((cls = objc_lookup_class(name)) == Nil) | | | 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 | Class objc_get_class(const char *name) { Class cls; if ((cls = objc_lookup_class(name)) == Nil) OBJC_ERROR("Class %s not found!", name); return cls; } const char* class_getName(Class cls) { |
︙ | ︙ | |||
510 511 512 513 514 515 516 | } } } } /* FIXME: We need a way to free this at objc_exit() */ if ((ml = malloc(sizeof(struct objc_method_list))) == NULL) | | | 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 | } } } } /* FIXME: We need a way to free this at objc_exit() */ if ((ml = malloc(sizeof(struct objc_method_list))) == NULL) OBJC_ERROR("Not enough memory to replace method!"); ml->next = cls->methodlist; ml->count = 1; ml->methods[0].sel.uid = sel->uid; ml->methods[0].sel.types = types; ml->methods[0].imp = newimp; |
︙ | ︙ |