Mercurial > hg > graal-compiler
comparison src/share/vm/runtime/sharedRuntime.cpp @ 7469:0c8717a92b2d
8001341: SIGSEGV in methodOopDesc::fast_exception_handler_bci_for(KlassHandle,int,Thread*)+0x3e9.
Summary: Use methodHandle.
Reviewed-by: coleenp, acorn, twisti, sspitsyn
author | jiangli |
---|---|
date | Tue, 08 Jan 2013 13:01:19 -0500 |
parents | cd3d6a6b95d9 |
children | 989155e2d07a 9fae07c31641 db9981fd3124 |
comparison
equal
deleted
inserted
replaced
7468:608b2e8a0063 | 7469:0c8717a92b2d |
---|---|
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 |