--- old/src/share/vm/prims/jvmtiRedefineClasses.cpp 2015-04-15 12:03:18.913531627 -0700 +++ new/src/share/vm/prims/jvmtiRedefineClasses.cpp 2015-04-15 12:03:18.773521837 -0700 @@ -611,8 +611,8 @@ // Check for NULL superclass first since this might be java.lang.Object if (the_class->super() != scratch_class->super() && (the_class->super() == NULL || scratch_class->super() == NULL || - the_class->super()->name() != - scratch_class->super()->name())) { + the_class->super()->name()->not_equals( + scratch_class->super()->name()))) { return JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED; } @@ -630,8 +630,8 @@ return JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED; } for (i = 0; i < n_intfs; i++) { - if (k_interfaces->at(i)->name() != - k_new_interfaces->at(i)->name()) { + if (k_interfaces->at(i)->name()->not_equals( + k_new_interfaces->at(i)->name())) { return JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED; } } @@ -669,7 +669,7 @@ Symbol* sig_sym1 = the_class->constants()->symbol_at(old_fs.signature_index()); Symbol* name_sym2 = scratch_class->constants()->symbol_at(new_fs.name_index()); Symbol* sig_sym2 = scratch_class->constants()->symbol_at(new_fs.signature_index()); - if (name_sym1 != name_sym2 || sig_sym1 != sig_sym2) { + if (name_sym1->not_equals(name_sym2) || sig_sym1->not_equals(sig_sym2)) { return JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED; } } @@ -725,7 +725,7 @@ // There are more methods in both the old and new lists k_old_method = k_old_methods->at(oi); k_new_method = k_new_methods->at(ni); - if (k_old_method->name() != k_new_method->name()) { + if (k_old_method->name()->not_equals(k_new_method->name())) { // Methods are sorted by method name, so a mismatch means added // or deleted if (k_old_method->name()->fast_compare(k_new_method->name()) > 0) { @@ -733,7 +733,7 @@ } else { method_was = deleted; } - } else if (k_old_method->signature() == k_new_method->signature()) { + } else if (k_old_method->signature()->equals(k_new_method->signature())) { // Both the name and signature match method_was = matched; } else { @@ -742,12 +742,12 @@ int nj; // outside the loop for post-loop check for (nj = ni + 1; nj < n_new_methods; nj++) { Method* m = k_new_methods->at(nj); - if (k_old_method->name() != m->name()) { + if (k_old_method->name()->not_equals(m->name())) { // reached another method name so no more overloaded methods method_was = deleted; break; } - if (k_old_method->signature() == m->signature()) { + if (k_old_method->signature()->equals(m->signature())) { // found a match so swap the methods k_new_methods->at_put(ni, m); k_new_methods->at_put(nj, k_new_method); @@ -1010,16 +1010,16 @@ ex_name->as_C_string())); CLEAR_PENDING_EXCEPTION; - if (ex_name == vmSymbols::java_lang_UnsupportedClassVersionError()) { + if (ex_name->equals(vmSymbols::java_lang_UnsupportedClassVersionError())) { return JVMTI_ERROR_UNSUPPORTED_VERSION; - } else if (ex_name == vmSymbols::java_lang_ClassFormatError()) { + } else if (ex_name->equals(vmSymbols::java_lang_ClassFormatError())) { return JVMTI_ERROR_INVALID_CLASS_FORMAT; - } else if (ex_name == vmSymbols::java_lang_ClassCircularityError()) { + } else if (ex_name->equals(vmSymbols::java_lang_ClassCircularityError())) { return JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION; - } else if (ex_name == vmSymbols::java_lang_NoClassDefFoundError()) { + } else if (ex_name->equals(vmSymbols::java_lang_NoClassDefFoundError())) { // The message will be "XXX (wrong name: YYY)" return JVMTI_ERROR_NAMES_DONT_MATCH; - } else if (ex_name == vmSymbols::java_lang_OutOfMemoryError()) { + } else if (ex_name->equals(vmSymbols::java_lang_OutOfMemoryError())) { return JVMTI_ERROR_OUT_OF_MEMORY; } else { // Just in case more exceptions can be thrown.. return JVMTI_ERROR_FAILS_VERIFICATION; @@ -1035,7 +1035,7 @@ RC_TRACE_WITH_THREAD(0x00000002, THREAD, ("link_class exception: '%s'", ex_name->as_C_string())); CLEAR_PENDING_EXCEPTION; - if (ex_name == vmSymbols::java_lang_OutOfMemoryError()) { + if (ex_name->equals(vmSymbols::java_lang_OutOfMemoryError())) { return JVMTI_ERROR_OUT_OF_MEMORY; } else { return JVMTI_ERROR_INTERNAL; @@ -1073,7 +1073,7 @@ RC_TRACE_WITH_THREAD(0x00000002, THREAD, ("verify_byte_codes exception: '%s'", ex_name->as_C_string())); CLEAR_PENDING_EXCEPTION; - if (ex_name == vmSymbols::java_lang_OutOfMemoryError()) { + if (ex_name->equals(vmSymbols::java_lang_OutOfMemoryError())) { return JVMTI_ERROR_OUT_OF_MEMORY; } else { // tell the caller the bytecodes are bad @@ -1088,7 +1088,7 @@ RC_TRACE_WITH_THREAD(0x00000002, THREAD, ("merge_cp_and_rewrite exception: '%s'", ex_name->as_C_string())); CLEAR_PENDING_EXCEPTION; - if (ex_name == vmSymbols::java_lang_OutOfMemoryError()) { + if (ex_name->equals(vmSymbols::java_lang_OutOfMemoryError())) { return JVMTI_ERROR_OUT_OF_MEMORY; } else { return JVMTI_ERROR_INTERNAL; @@ -1109,7 +1109,7 @@ ("verify_byte_codes post merge-CP exception: '%s'", ex_name->as_C_string())); CLEAR_PENDING_EXCEPTION; - if (ex_name == vmSymbols::java_lang_OutOfMemoryError()) { + if (ex_name->equals(vmSymbols::java_lang_OutOfMemoryError())) { return JVMTI_ERROR_OUT_OF_MEMORY; } else { // tell the caller that constant pool merging screwed up @@ -1128,7 +1128,7 @@ RC_TRACE_WITH_THREAD(0x00000002, THREAD, ("Rewriter::rewrite or link_methods exception: '%s'", ex_name->as_C_string())); CLEAR_PENDING_EXCEPTION; - if (ex_name == vmSymbols::java_lang_OutOfMemoryError()) { + if (ex_name->equals(vmSymbols::java_lang_OutOfMemoryError())) { return JVMTI_ERROR_OUT_OF_MEMORY; } else { return JVMTI_ERROR_INTERNAL; @@ -3810,8 +3810,8 @@ } else { old_method = _old_methods->at(oj); new_method = _new_methods->at(nj); - if (old_method->name() == new_method->name()) { - if (old_method->signature() == new_method->signature()) { + if (old_method->name()->equals(new_method->name())) { + if (old_method->signature()->equals(new_method->signature())) { _matching_old_methods[_matching_methods_length ] = old_method; _matching_new_methods[_matching_methods_length++] = new_method; ++nj;