8184206: Resolve all string constants in shared classes at CDS dump time

Change ConstantPool::resolve_class_constants() to resolve all string constants.

Reviewed-by: iklam, coleenp
This commit is contained in:
Jiangli Zhou 2017-11-06 14:12:37 -05:00
parent 40cdb9fd60
commit 545e8eb333

View File

@ -305,14 +305,9 @@ void ConstantPool::resolve_class_constants(TRAPS) {
constantPoolHandle cp(THREAD, this);
for (int index = 1; index < length(); index++) { // Index 0 is unused
if (tag_at(index).is_string()) {
Symbol* sym = cp->unresolved_string_at(index);
// Look up only. Only resolve references to already interned strings.
oop str = StringTable::lookup(sym);
if (str != NULL) {
int cache_index = cp->cp_to_object_index(index);
cp->string_at_put(index, cache_index, str);
}
if (tag_at(index).is_string() && !cp->is_pseudo_string_at(index)) {
int cache_index = cp->cp_to_object_index(index);
string_at_impl(cp, index, cache_index, CHECK);
}
}
}