mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8217442: Optimize native accesses to String.value
Reviewed-by: shade, dholmes
This commit is contained in:
parent
5f5d4425c2
commit
911c7ff446
5 changed files with 75 additions and 57 deletions
|
@ -71,10 +71,11 @@ bool java_lang_String::is_latin1(oop java_string) {
|
|||
assert(CompactStrings || coder == CODER_UTF16, "Must be UTF16 without CompactStrings");
|
||||
return coder == CODER_LATIN1;
|
||||
}
|
||||
int java_lang_String::length(oop java_string) {
|
||||
int java_lang_String::length(oop java_string, typeArrayOop value) {
|
||||
assert(initialized, "Must be initialized");
|
||||
assert(is_instance(java_string), "must be java_string");
|
||||
typeArrayOop value = java_lang_String::value_no_keepalive(java_string);
|
||||
assert(oopDesc::equals_raw(value, java_lang_String::value(java_string)),
|
||||
"value must be same as java_lang_String::value(java_string)");
|
||||
if (value == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
@ -85,6 +86,12 @@ int java_lang_String::length(oop java_string) {
|
|||
}
|
||||
return arr_length;
|
||||
}
|
||||
int java_lang_String::length(oop java_string) {
|
||||
assert(initialized, "Must be initialized");
|
||||
assert(is_instance(java_string), "must be java_string");
|
||||
typeArrayOop value = java_lang_String::value_no_keepalive(java_string);
|
||||
return length(java_string, value);
|
||||
}
|
||||
|
||||
bool java_lang_String::is_instance_inlined(oop obj) {
|
||||
return obj != NULL && obj->klass() == SystemDictionary::String_klass();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue