Mercurial > hg > truffle
diff src/share/vm/runtime/deoptimization.cpp @ 4055:e342a5110bed
7106774: JSR 292: nightly test inlineMHTarget fails with wrong result
Reviewed-by: kvn
author | twisti |
---|---|
date | Thu, 03 Nov 2011 01:43:26 -0700 |
parents | b20d64f83668 |
children | 04b9a2566eec e9a5e0a812c8 |
line wrap: on
line diff
--- a/src/share/vm/runtime/deoptimization.cpp Mon Oct 31 15:52:11 2011 -0700 +++ b/src/share/vm/runtime/deoptimization.cpp Thu Nov 03 01:43:26 2011 -0700 @@ -388,12 +388,8 @@ bool caller_was_method_handle = false; if (deopt_sender.is_interpreted_frame()) { methodHandle method = deopt_sender.interpreter_frame_method(); - Bytecode_invoke cur = Bytecode_invoke_check(method, - deopt_sender.interpreter_frame_bci()); - if (cur.code() == Bytecodes::_invokedynamic || - (cur.code() == Bytecodes::_invokevirtual && - method->constants()->klass_ref_at_noresolve(cur.index()) == vmSymbols::java_lang_invoke_MethodHandle() && - methodOopDesc::is_method_handle_invoke_name(cur.name()))) { + Bytecode_invoke cur = Bytecode_invoke_check(method, deopt_sender.interpreter_frame_bci()); + if (cur.is_method_handle_invoke()) { // Method handle invokes may involve fairly arbitrary chains of // calls so it's impossible to know how much actual space the // caller has for locals.