--- old/src/share/vm/prims/methodHandles.cpp 2015-04-15 12:03:20.028609601 -0700 +++ new/src/share/vm/prims/methodHandles.cpp 2015-04-15 12:03:19.886599670 -0700 @@ -222,7 +222,7 @@ #ifdef ASSERT { ResourceMark rm; Method* m2 = m_klass_non_interface->vtable()->method_at(vmindex); - assert(m->name() == m2->name() && m->signature() == m2->signature(), + assert(m->name()->equals(m2->name()) && m->signature()->equals(m2->signature()), err_msg("at %d, %s != %s", vmindex, m->name_and_sig_as_C_string(), m2->name_and_sig_as_C_string())); } @@ -328,7 +328,7 @@ // The following test will fail spuriously during bootstrap of MethodHandle itself: // if (klass != SystemDictionary::MethodHandle_klass()) // Test the name instead: - if (klass->name() != vmSymbols::java_lang_invoke_MethodHandle()) + if (klass->name()->not_equals(vmSymbols::java_lang_invoke_MethodHandle())) return false; Symbol* poly_sig = vmSymbols::object_array_object_signature(); Method* m = InstanceKlass::cast(klass)->find_method(name, poly_sig); @@ -392,7 +392,7 @@ vmIntrinsics::ID MethodHandles::signature_polymorphic_name_id(Klass* klass, Symbol* name) { if (klass != NULL && - klass->name() == vmSymbols::java_lang_invoke_MethodHandle()) { + klass->name()->equals(vmSymbols::java_lang_invoke_MethodHandle())) { vmIntrinsics::ID iid = signature_polymorphic_name_id(name); if (iid != vmIntrinsics::_none) return iid; @@ -586,11 +586,11 @@ // Here are some more short cuts for common types. // They are optional, since reference types can be resolved lazily. if (bt == T_OBJECT) { - if (s == vmSymbols::object_signature()) { + if (s->equals(vmSymbols::object_signature())) { return object_java_mirror(); - } else if (s == vmSymbols::class_signature()) { + } else if (s->equals(vmSymbols::class_signature())) { return SystemDictionary::Class_klass()->java_mirror(); - } else if (s == vmSymbols::string_signature()) { + } else if (s->equals(vmSymbols::string_signature())) { return SystemDictionary::String_klass()->java_mirror(); } } @@ -864,9 +864,9 @@ if ((match_flags & IS_FIELD) != 0) { for (FieldStream st(k(), local_only, !search_intfc); !st.eos(); st.next()) { - if (name != NULL && st.name() != name) + if (name != NULL && st.name()->not_equals(name)) continue; - if (sig != NULL && st.signature() != sig) + if (sig != NULL && st.signature()->not_equals(sig)) continue; // passed the filters if (rskip > 0) { @@ -888,14 +888,14 @@ // watch out for these guys: Symbol* init_name = vmSymbols::object_initializer_name(); Symbol* clinit_name = vmSymbols::class_initializer_name(); - if (name == clinit_name) clinit_name = NULL; // hack for exposing + if (name->equals(clinit_name)) clinit_name = NULL; // hack for exposing bool negate_name_test = false; // fix name so that it captures the intention of IS_CONSTRUCTOR if (!(match_flags & IS_METHOD)) { // constructors only if (name == NULL) { name = init_name; - } else if (name != init_name) { + } else if (name->not_equals(init_name)) { return 0; // no constructors of this method name } } else if (!(match_flags & IS_CONSTRUCTOR)) { @@ -903,7 +903,7 @@ if (name == NULL) { name = init_name; negate_name_test = true; // if we see the name, we *omit* the entry - } else if (name == init_name) { + } else if (name->equals(init_name)) { return 0; // no methods of this constructor name } } else { @@ -912,11 +912,11 @@ for (MethodStream st(k(), local_only, !search_intfc); !st.eos(); st.next()) { Method* m = st.method(); Symbol* m_name = m->name(); - if (m_name == clinit_name) + if (m_name->equals(clinit_name)) continue; - if (name != NULL && ((m_name != name) ^ negate_name_test)) + if (name->not_equals(NULL) && ((m_name->not_equals(name)) ^ negate_name_test)) continue; - if (sig != NULL && m->signature() != sig) + if (sig->not_equals(NULL) && m->signature()->not_equals(sig)) continue; // passed the filters if (rskip > 0) {