< prev index next >
src/hotspot/share/runtime/fieldDescriptor.cpp
Print this page
@@ -197,11 +197,11 @@
st->print(" ");
NOT_LP64(as_int = obj->int_field(offset()));
obj->obj_field(offset())->print_value_on(st);
break;
case T_VALUETYPE:
- {
+ if (is_flatten()) {
// Resolve klass of flattened value type field
Thread* THREAD = Thread::current();
ResourceMark rm(THREAD);
SignatureStream ss(signature(), false);
Klass* k = ss.as_klass(Handle(THREAD, field_holder()->class_loader()),
@@ -214,12 +214,16 @@
// Print flattened fields of the value type field
st->print_cr("Flattened value type '%s':", vk->name()->as_C_string());
FieldPrinter print_field(st, obj);
vk->do_nonstatic_fields(&print_field);
return; // Do not print underlying representation
- break;
+ } else {
+ st->print(" ");
+ NOT_LP64(as_int = obj->int_field(offset()));
+ obj->obj_field(offset())->print_value_on(st);
}
+ break;
default:
ShouldNotReachHere();
break;
}
// Print a hint as to the underlying integer representation. This can be wrong for
< prev index next >