equal
deleted
inserted
replaced
641 bool recursive_exception = false; |
641 bool recursive_exception = false; |
642 do { |
642 do { |
643 bool skip_scope_increment = false; |
643 bool skip_scope_increment = false; |
644 // exception handler lookup |
644 // exception handler lookup |
645 KlassHandle ek (THREAD, exception->klass()); |
645 KlassHandle ek (THREAD, exception->klass()); |
646 handler_bci = sd->method()->fast_exception_handler_bci_for(ek, bci, THREAD); |
646 methodHandle mh(THREAD, sd->method()); |
|
647 handler_bci = Method::fast_exception_handler_bci_for(mh, ek, bci, THREAD); |
647 if (HAS_PENDING_EXCEPTION) { |
648 if (HAS_PENDING_EXCEPTION) { |
648 recursive_exception = true; |
649 recursive_exception = true; |
649 // We threw an exception while trying to find the exception handler. |
650 // We threw an exception while trying to find the exception handler. |
650 // Transfer the new exception to the exception handle which will |
651 // Transfer the new exception to the exception handle which will |
651 // be set into thread local storage, and do another lookup for an |
652 // be set into thread local storage, and do another lookup for an |