--- 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