diff -r 57ad70bcf06c -r 15936b142f86 src/hotspot/share/runtime/deoptimization.cpp --- a/src/hotspot/share/runtime/deoptimization.cpp Wed Nov 13 11:27:50 2019 +0000 +++ b/src/hotspot/share/runtime/deoptimization.cpp Wed Nov 13 08:23:23 2019 -0500 @@ -44,7 +44,7 @@ #include "oops/objArrayKlass.hpp" #include "oops/objArrayOop.inline.hpp" #include "oops/oop.inline.hpp" -#include "oops/fieldStreams.hpp" +#include "oops/fieldStreams.inline.hpp" #include "oops/typeArrayOop.inline.hpp" #include "oops/verifyOopClosure.hpp" #include "prims/jvmtiThreadState.hpp" @@ -428,7 +428,7 @@ // frame. bool caller_was_method_handle = false; if (deopt_sender.is_interpreted_frame()) { - methodHandle method = deopt_sender.interpreter_frame_method(); + methodHandle method(thread, deopt_sender.interpreter_frame_method()); Bytecode_invoke cur = Bytecode_invoke_check(method, deopt_sender.interpreter_frame_bci()); if (cur.is_invokedynamic() || cur.is_invokehandle()) { // Method handle invokes may involve fairly arbitrary chains of @@ -1536,7 +1536,7 @@ assert(caller_frame.cb()->as_compiled_method_or_null() == cm, "expect top frame compiled method"); Deoptimization::deoptimize(thread, caller_frame, ®_map, Deoptimization::Reason_not_compiled_exception_handler); - MethodData* trap_mdo = get_method_data(thread, cm->method(), true); + MethodData* trap_mdo = get_method_data(thread, methodHandle(thread, cm->method()), true); if (trap_mdo != NULL) { trap_mdo->inc_trap_count(Deoptimization::Reason_not_compiled_exception_handler); } @@ -1701,7 +1701,7 @@ ); } - methodHandle trap_method = trap_scope->method(); + methodHandle trap_method(THREAD, trap_scope->method()); int trap_bci = trap_scope->bci(); #if INCLUDE_JVMCI jlong speculation = thread->pending_failed_speculation(); @@ -1732,7 +1732,7 @@ methodHandle profiled_method; #if INCLUDE_JVMCI if (nm->is_compiled_by_jvmci()) { - profiled_method = nm->method(); + profiled_method = methodHandle(THREAD, nm->method()); } else { profiled_method = trap_method; }