8199137: StringInternSync test crashes in exit verification

Java_lang_String::equals(oop, oop) was buggy.

Reviewed-by: eosterlund, dholmes
This commit is contained in:
Coleen Phillimore 2018-03-06 18:12:15 -05:00
parent 2842bcc5c7
commit 31cf80c688
2 changed files with 45 additions and 2 deletions

View file

@ -689,10 +689,10 @@ bool java_lang_String::equals(oop str1, oop str2) {
assert(str2->klass() == SystemDictionary::String_klass(),
"must be java String");
typeArrayOop value1 = java_lang_String::value_no_keepalive(str1);
int length1 = java_lang_String::length(value1);
int length1 = java_lang_String::length(str1);
bool is_latin1 = java_lang_String::is_latin1(str1);
typeArrayOop value2 = java_lang_String::value_no_keepalive(str2);
int length2 = java_lang_String::length(value2);
int length2 = java_lang_String::length(str2);
bool is_latin2 = java_lang_String::is_latin1(str2);
if ((length1 != length2) || (is_latin1 != is_latin2)) {