mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8221836: Avoid recalculating String.hash when zero
Co-authored-by: Peter Levart <peter.levart@gmail.com> Reviewed-by: jrose, adinn
This commit is contained in:
parent
d40aa622cf
commit
89a267ca46
6 changed files with 66 additions and 40 deletions
|
@ -45,9 +45,9 @@ void java_lang_String::set_value(oop string, typeArrayOop buffer) {
|
|||
string->obj_field_put(value_offset, (oop)buffer);
|
||||
}
|
||||
|
||||
void java_lang_String::set_hash(oop string, unsigned int hash) {
|
||||
assert(initialized && (hash_offset > 0), "Must be initialized");
|
||||
string->int_field_put(hash_offset, hash);
|
||||
bool java_lang_String::hash_is_set(oop java_string) {
|
||||
assert(initialized && (hash_offset > 0) && (hashIsZero_offset > 0), "Must be initialized");
|
||||
return java_string->int_field(hash_offset) != 0 || java_string->bool_field(hashIsZero_offset) != 0;
|
||||
}
|
||||
|
||||
// Accessors
|
||||
|
@ -71,12 +71,6 @@ typeArrayOop java_lang_String::value_no_keepalive(oop java_string) {
|
|||
return (typeArrayOop) java_string->obj_field_access<AS_NO_KEEPALIVE>(value_offset);
|
||||
}
|
||||
|
||||
unsigned int java_lang_String::hash(oop java_string) {
|
||||
assert(initialized && (hash_offset > 0), "Must be initialized");
|
||||
assert(is_instance(java_string), "must be java_string");
|
||||
return java_string->int_field(hash_offset);
|
||||
}
|
||||
|
||||
bool java_lang_String::is_latin1(oop java_string) {
|
||||
assert(initialized && (coder_offset > 0), "Must be initialized");
|
||||
assert(is_instance(java_string), "must be java_string");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue