diff 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
line wrap: on
line diff
--- a/src/share/vm/runtime/sharedRuntime.cpp	Thu Jan 03 15:08:43 2013 -0500
+++ b/src/share/vm/runtime/sharedRuntime.cpp	Tue Jan 08 13:01:19 2013 -0500
@@ -643,7 +643,8 @@
       bool skip_scope_increment = false;
       // exception handler lookup
       KlassHandle ek (THREAD, exception->klass());
-      handler_bci = sd->method()->fast_exception_handler_bci_for(ek, bci, THREAD);
+      methodHandle mh(THREAD, sd->method());
+      handler_bci = Method::fast_exception_handler_bci_for(mh, ek, bci, THREAD);
       if (HAS_PENDING_EXCEPTION) {
         recursive_exception = true;
         // We threw an exception while trying to find the exception handler.