Differences From 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]
To Artifact [cde4d41e21]:
- File src/runtime/class.m — part of check-in [8f02ff02dc] at 2012-08-05 16:52:14 on branch trunk — Fix a possible race condition in initialize_class. (user: js, size: 11681) [annotate] [blame] [check-ins using] [more...]
︙ | |||
133 134 135 136 137 138 139 | 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | - + | void objc_update_dtable(Class cls) { struct objc_method_list *ml; struct objc_category **cats; unsigned int i; |
︙ | |||
238 239 240 241 242 243 244 245 246 247 248 249 250 251 | 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 | + + + + + + - - - | { if (cls->info & OBJC_CLASS_INFO_INITIALIZED) return; if (cls->superclass) initialize_class(cls->superclass); cls->info |= OBJC_CLASS_INFO_DTABLE; cls->isa->info |= OBJC_CLASS_INFO_DTABLE; objc_update_dtable(cls); objc_update_dtable(cls->isa); /* * Set it first to prevent calling it recursively due to message sends * in the initialize method */ cls->info |= OBJC_CLASS_INFO_INITIALIZED; cls->isa->info |= OBJC_CLASS_INFO_INITIALIZED; |
︙ | |||
532 533 534 535 536 537 538 | 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 | - - - - + | } static void free_class(Class rcls) { struct objc_abi_class *cls = (struct objc_abi_class*)rcls; |
︙ |