diff -r 13588c901957 -r 9cf78a70fa4f src/hotspot/share/prims/methodHandles.cpp --- a/src/hotspot/share/prims/methodHandles.cpp Thu Oct 17 20:27:44 2019 +0100 +++ b/src/hotspot/share/prims/methodHandles.cpp Thu Oct 17 20:53:35 2019 +0100 @@ -41,7 +41,6 @@ #include "oops/oop.inline.hpp" #include "oops/typeArrayOop.inline.hpp" #include "prims/methodHandles.hpp" -#include "runtime/compilationPolicy.hpp" #include "runtime/deoptimization.hpp" #include "runtime/fieldDescriptor.inline.hpp" #include "runtime/handles.inline.hpp" @@ -573,7 +572,7 @@ if (is_subword_type(bt)) { bsig = vmSymbols::int_signature(); } else { - assert(bt == T_OBJECT || bt == T_ARRAY, "is_basic_type_signature was false"); + assert(is_reference_type(bt), "is_basic_type_signature was false"); bsig = vmSymbols::object_signature(); } } else { @@ -592,7 +591,7 @@ if (arg_pos == keep_arg_pos) { buffer.write((char*) ss.raw_bytes(), (int) ss.raw_length()); - } else if (bt == T_OBJECT || bt == T_ARRAY) { + } else if (is_reference_type(bt)) { buffer.write(OBJ_SIG, OBJ_SIG_LEN); } else { if (is_subword_type(bt)) @@ -1004,7 +1003,7 @@ if (!java_lang_invoke_MemberName::is_instance(result())) return -99; // caller bug! oop saved = MethodHandles::init_field_MemberName(result, st.field_descriptor()); - if (!oopDesc::equals(saved, result())) + if (saved != result()) results->obj_at_put(rfill-1, saved); // show saved instance to user } else if (++overflow >= overflow_limit) { match_flags = 0; break; // got tired of looking at overflow @@ -1056,7 +1055,7 @@ return -99; // caller bug! CallInfo info(m, NULL, CHECK_0); oop saved = MethodHandles::init_method_MemberName(result, info); - if (!oopDesc::equals(saved, result())) + if (saved != result()) results->obj_at_put(rfill-1, saved); // show saved instance to user } else if (++overflow >= overflow_limit) { match_flags = 0; break; // got tired of looking at overflow