< prev index next >

src/share/vm/classfile/javaClasses.cpp

Print this page
rev 12906 : [mq]: gc_interface

*** 42,52 **** #include "oops/klass.hpp" #include "oops/method.hpp" #include "oops/objArrayOop.inline.hpp" #include "oops/oop.inline.hpp" #include "oops/symbol.hpp" ! #include "oops/typeArrayOop.hpp" #include "runtime/fieldDescriptor.hpp" #include "runtime/handles.inline.hpp" #include "runtime/interfaceSupport.hpp" #include "runtime/java.hpp" #include "runtime/javaCalls.hpp" --- 42,53 ---- #include "oops/klass.hpp" #include "oops/method.hpp" #include "oops/objArrayOop.inline.hpp" #include "oops/oop.inline.hpp" #include "oops/symbol.hpp" ! #include "oops/typeArrayOop.inline.hpp" ! #include "runtime/access.inline.hpp" #include "runtime/fieldDescriptor.hpp" #include "runtime/handles.inline.hpp" #include "runtime/interfaceSupport.hpp" #include "runtime/java.hpp" #include "runtime/javaCalls.hpp"
*** 612,626 **** jbyte* position = value->byte_at_addr(start); return UNICODE::as_utf8(position, len, buf, buflen); } } ! bool java_lang_String::equals(oop java_string, jchar* chars, int len) { assert(java_string->klass() == SystemDictionary::String_klass(), "must be java_string"); - typeArrayOop value = java_lang_String::value(java_string); - int length = java_lang_String::length(java_string); if (length != len) { return false; } bool is_latin1 = java_lang_String::is_latin1(java_string); if (!is_latin1) { --- 613,625 ---- jbyte* position = value->byte_at_addr(start); return UNICODE::as_utf8(position, len, buf, buflen); } } ! bool java_lang_String::equals(typeArrayOop value, int length, oop java_string, jchar* chars, int len) { assert(java_string->klass() == SystemDictionary::String_klass(), "must be java_string"); if (length != len) { return false; } bool is_latin1 = java_lang_String::is_latin1(java_string); if (!is_latin1) {
*** 637,665 **** } } return true; } bool java_lang_String::equals(oop str1, oop str2) { assert(str1->klass() == SystemDictionary::String_klass(), "must be java String"); assert(str2->klass() == SystemDictionary::String_klass(), "must be java String"); typeArrayOop value1 = java_lang_String::value(str1); ! int length1 = java_lang_String::length(str1); bool is_latin1 = java_lang_String::is_latin1(str1); typeArrayOop value2 = java_lang_String::value(str2); ! int length2 = java_lang_String::length(str2); bool is_latin2 = java_lang_String::is_latin1(str2); if ((length1 != length2) || (is_latin1 != is_latin2)) { // Strings of different size or with different // coders are never equal. return false; } ! int blength1 = value1->length(); ! for (int i = 0; i < value1->length(); i++) { if (value1->byte_at(i) != value2->byte_at(i)) { return false; } } return true; --- 636,669 ---- } } return true; } + bool java_lang_String::equals(oop java_string, jchar* chars, int len) { + typeArrayOop value = java_lang_String::value(java_string); + int length = java_lang_String::length(java_string); + return java_lang_String::equals(value, length, java_string, chars, len); + } + bool java_lang_String::equals(oop str1, oop str2) { assert(str1->klass() == SystemDictionary::String_klass(), "must be java String"); assert(str2->klass() == SystemDictionary::String_klass(), "must be java String"); typeArrayOop value1 = java_lang_String::value(str1); ! int length1 = value1->length(); bool is_latin1 = java_lang_String::is_latin1(str1); typeArrayOop value2 = java_lang_String::value(str2); ! int length2 = value2->length(); bool is_latin2 = java_lang_String::is_latin1(str2); if ((length1 != length2) || (is_latin1 != is_latin2)) { // Strings of different size or with different // coders are never equal. return false; } ! for (int i = 0; i < length1; i++) { if (value1->byte_at(i) != value2->byte_at(i)) { return false; } } return true;
< prev index next >