8216049: stringTable::intern creates redundant String when looking up existing one
Reviewed-by: redestad, gziemski, rehn, zgu, jiangli
--- a/src/hotspot/share/classfile/stringTable.cpp Sat Feb 16 11:40:34 2019 +0900
+++ b/src/hotspot/share/classfile/stringTable.cpp Sat Feb 16 21:15:33 2019 +0100
@@ -334,6 +334,10 @@
if (StringTable::_alt_hash) {
hash = hash_string(name, len, true);
}
+ found_string = StringTable::the_table()->do_lookup(name, len, hash);
+ if (found_string != NULL) {
+ return found_string;
+ }
return StringTable::the_table()->do_intern(string_or_null_h, name, len,
hash, CHECK_NULL);
}