< prev index next >
src/hotspot/share/ci/ciInstanceKlass.cpp
Print this page
@@ -667,38 +667,33 @@
case T_DOUBLE: {
double d = mirror->double_field(fd->offset());
_out->print_cr(INT64_FORMAT, *(int64_t*)&d);
break;
}
- case T_ARRAY: {
- oop value = mirror->obj_field_acquire(fd->offset());
- if (value == NULL) {
- _out->print_cr("null");
- } else {
- typeArrayOop ta = (typeArrayOop)value;
- _out->print("%d", ta->length());
- if (value->is_objArray()) {
- objArrayOop oa = (objArrayOop)value;
- const char* klass_name = value->klass()->name()->as_quoted_ascii();
- _out->print(" %s", klass_name);
- }
- _out->cr();
- }
- break;
- }
+ case T_ARRAY: // fall-through
case T_OBJECT: {
oop value = mirror->obj_field_acquire(fd->offset());
if (value == NULL) {
_out->print_cr("null");
} else if (value->is_instance()) {
+ assert(fd->field_type() == T_OBJECT, "");
if (value->is_a(SystemDictionary::String_klass())) {
const char* ascii_value = java_lang_String::as_quoted_ascii(value);
_out->print("\"%s\"", (ascii_value != NULL) ? ascii_value : "");
} else {
const char* klass_name = value->klass()->name()->as_quoted_ascii();
_out->print_cr("%s", klass_name);
}
+ } else if (value->is_array()) {
+ typeArrayOop ta = (typeArrayOop)value;
+ _out->print("%d", ta->length());
+ if (value->is_objArray()) {
+ objArrayOop oa = (objArrayOop)value;
+ const char* klass_name = value->klass()->name()->as_quoted_ascii();
+ _out->print(" %s", klass_name);
+ }
+ _out->cr();
} else {
ShouldNotReachHere();
}
break;
}
< prev index next >