src/share/vm/oops/constantPool.cpp
Print this page
*** 1707,1720 ****
break;
}
case JVM_CONSTANT_String: {
*bytes = JVM_CONSTANT_String;
Symbol* sym = unresolved_string_at(idx);
idx1 = tbl->symbol_to_value(sym);
assert(idx1 != 0, "Have not found a hashtable entry");
Bytes::put_Java_u2((address) (bytes+1), idx1);
! DBG(printf("JVM_CONSTANT_String: idx=#%03hd, %s", idx1, sym->as_utf8()));
break;
}
case JVM_CONSTANT_Fieldref:
case JVM_CONSTANT_Methodref:
case JVM_CONSTANT_InterfaceMethodref: {
--- 1707,1725 ----
break;
}
case JVM_CONSTANT_String: {
*bytes = JVM_CONSTANT_String;
Symbol* sym = unresolved_string_at(idx);
+ if (is_pseudo_string_at(idx)) {
+ idx1 = get_pseudo_string_utf8_index(idx);
+ assert(idx1 != 0, "Have not found a pseudo-string placeholder entry");
+ } else {
idx1 = tbl->symbol_to_value(sym);
assert(idx1 != 0, "Have not found a hashtable entry");
+ }
Bytes::put_Java_u2((address) (bytes+1), idx1);
! DBG(printf("JVM_CONSTANT_String: idx=#%03hd, %s", idx1, sym == NULL ? "NULL" : sym->as_utf8()));
break;
}
case JVM_CONSTANT_Fieldref:
case JVM_CONSTANT_Methodref:
case JVM_CONSTANT_InterfaceMethodref: {