Differences From Artifact [738962e0b5]:
- File src/runtime/exception.m — part of check-in [b2deb6c291] at 2012-08-20 00:20:12 on branch trunk — exception.m: Fix cleanup. (user: js, size: 14305) [annotate] [blame] [check-ins using]
To Artifact [ef3f114f24]:
- File
src/runtime/exception.m
— part of check-in
[aecc08c367]
at
2012-09-06 19:13:50
on branch trunk
— A few small exception fixes.
This partly reverts 93dad6d, as it did fix ARC + -fobjc-arc-exceptions
with Clang, but broke exceptions in general with GCC. (user: js, size: 14250) [annotate] [blame] [check-ins using]
︙ | |||
394 395 396 397 398 399 400 | 394 395 396 397 398 399 400 401 402 403 404 405 406 407 | - | return NO; } static uint8_t find_actionrecord(const uint8_t *actionrecords, struct lsda *lsda, int actions, BOOL foreign, struct objc_exception *e, intptr_t *filtervalue) { |
︙ | |||
438 439 440 441 442 443 444 | 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 | - + - + - + | lsda->typestable - i, lsda->typestable_base); #endif class = (c != 0 ? objc_get_class((const char*)c) : Nil); if (class_matches(class, e->object)) { *filtervalue = filter; |
︙ | |||
535 536 537 538 539 540 541 | 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 | - + - + - + - | if (landingpad != 0 && actionrecords == NULL) found = CLEANUP_FOUND; else if (landingpad != 0) found = find_actionrecord(actionrecords, &lsda, actions, foreign, e, &filter); |
︙ |