1.1 --- a/src/share/vm/runtime/deoptimization.cpp Mon Oct 31 15:52:11 2011 -0700 1.2 +++ b/src/share/vm/runtime/deoptimization.cpp Thu Nov 03 01:43:26 2011 -0700 1.3 @@ -388,12 +388,8 @@ 1.4 bool caller_was_method_handle = false; 1.5 if (deopt_sender.is_interpreted_frame()) { 1.6 methodHandle method = deopt_sender.interpreter_frame_method(); 1.7 - Bytecode_invoke cur = Bytecode_invoke_check(method, 1.8 - deopt_sender.interpreter_frame_bci()); 1.9 - if (cur.code() == Bytecodes::_invokedynamic || 1.10 - (cur.code() == Bytecodes::_invokevirtual && 1.11 - method->constants()->klass_ref_at_noresolve(cur.index()) == vmSymbols::java_lang_invoke_MethodHandle() && 1.12 - methodOopDesc::is_method_handle_invoke_name(cur.name()))) { 1.13 + Bytecode_invoke cur = Bytecode_invoke_check(method, deopt_sender.interpreter_frame_bci()); 1.14 + if (cur.is_method_handle_invoke()) { 1.15 // Method handle invokes may involve fairly arbitrary chains of 1.16 // calls so it's impossible to know how much actual space the 1.17 // caller has for locals.