src/share/vm/prims/jvmtiExport.cpp

Print this page

        

*** 1303,1321 **** bool should_repeat; vframeStream st(thread); assert(!st.at_end(), "cannot be at end"); methodOop current_method = NULL; int current_bci = -1; do { current_method = st.method(); current_bci = st.bci(); do { should_repeat = false; KlassHandle eh_klass(thread, exception_handle()->klass()); ! current_bci = current_method->fast_exception_handler_bci_for( ! eh_klass, current_bci, THREAD); if (HAS_PENDING_EXCEPTION) { exception_handle = KlassHandle(thread, PENDING_EXCEPTION); CLEAR_PENDING_EXCEPTION; should_repeat = true; } --- 1303,1323 ---- bool should_repeat; vframeStream st(thread); assert(!st.at_end(), "cannot be at end"); methodOop current_method = NULL; + methodHandle current_mh = methodHandle(thread, current_method); int current_bci = -1; do { current_method = st.method(); + current_mh = methodHandle(thread, current_method); current_bci = st.bci(); do { should_repeat = false; KlassHandle eh_klass(thread, exception_handle()->klass()); ! current_bci = methodOopDesc::fast_exception_handler_bci_for( ! current_mh, eh_klass, current_bci, THREAD); if (HAS_PENDING_EXCEPTION) { exception_handle = KlassHandle(thread, PENDING_EXCEPTION); CLEAR_PENDING_EXCEPTION; should_repeat = true; }
*** 1326,1337 **** jmethodID catch_jmethodID; if (current_bci < 0) { catch_jmethodID = 0; current_bci = 0; } else { ! catch_jmethodID = jem.to_jmethodID( ! methodHandle(thread, current_method)); } JvmtiJavaThreadEventTransition jet(thread); jvmtiEventException callback = env->callbacks()->Exception; if (callback != NULL) { --- 1328,1338 ---- jmethodID catch_jmethodID; if (current_bci < 0) { catch_jmethodID = 0; current_bci = 0; } else { ! catch_jmethodID = jem.to_jmethodID(current_mh); } JvmtiJavaThreadEventTransition jet(thread); jvmtiEventException callback = env->callbacks()->Exception; if (callback != NULL) {