# HG changeset patch # User jiangli # Date 1509995557 18000 # Node ID d20059c2743085c6efd3052fbd06727fce351a20 # Parent 47629b00daa9bdb302858eee2ea0b93c10986332 8184206: Resolve all string constants in shared classes at CDS dump time Summary: Change ConstantPool::resolve_class_constants() to resolve all string constants. Reviewed-by: iklam, coleenp diff -r 47629b00daa9 -r d20059c27430 src/hotspot/share/oops/constantPool.cpp --- a/src/hotspot/share/oops/constantPool.cpp Mon Nov 06 21:38:42 2017 +0100 +++ b/src/hotspot/share/oops/constantPool.cpp Mon Nov 06 14:12:37 2017 -0500 @@ -305,14 +305,9 @@ 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); } } }