< 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 >