src/hotspot/share/ci/ciInstanceKlass.cpp
changeset 53763 93b42eb5f3fc
parent 52925 9c18c9d839d3
child 58722 cba8afa5cfed
equal deleted inserted replaced
53762:65deccd64f3a 53763:93b42eb5f3fc
   667         case T_DOUBLE: {
   667         case T_DOUBLE: {
   668           double d = mirror->double_field(fd->offset());
   668           double d = mirror->double_field(fd->offset());
   669           _out->print_cr(INT64_FORMAT, *(int64_t*)&d);
   669           _out->print_cr(INT64_FORMAT, *(int64_t*)&d);
   670           break;
   670           break;
   671         }
   671         }
   672         case T_ARRAY: {
   672         case T_ARRAY:  // fall-through
       
   673         case T_OBJECT: {
   673           oop value =  mirror->obj_field_acquire(fd->offset());
   674           oop value =  mirror->obj_field_acquire(fd->offset());
   674           if (value == NULL) {
   675           if (value == NULL) {
   675             _out->print_cr("null");
   676             _out->print_cr("null");
   676           } else {
   677           } else if (value->is_instance()) {
       
   678             assert(fd->field_type() == T_OBJECT, "");
       
   679             if (value->is_a(SystemDictionary::String_klass())) {
       
   680               const char* ascii_value = java_lang_String::as_quoted_ascii(value);
       
   681               _out->print("\"%s\"", (ascii_value != NULL) ? ascii_value : "");
       
   682             } else {
       
   683               const char* klass_name  = value->klass()->name()->as_quoted_ascii();
       
   684               _out->print_cr("%s", klass_name);
       
   685             }
       
   686           } else if (value->is_array()) {
   677             typeArrayOop ta = (typeArrayOop)value;
   687             typeArrayOop ta = (typeArrayOop)value;
   678             _out->print("%d", ta->length());
   688             _out->print("%d", ta->length());
   679             if (value->is_objArray()) {
   689             if (value->is_objArray()) {
   680               objArrayOop oa = (objArrayOop)value;
   690               objArrayOop oa = (objArrayOop)value;
   681               const char* klass_name  = value->klass()->name()->as_quoted_ascii();
   691               const char* klass_name  = value->klass()->name()->as_quoted_ascii();
   682               _out->print(" %s", klass_name);
   692               _out->print(" %s", klass_name);
   683             }
   693             }
   684             _out->cr();
   694             _out->cr();
   685           }
       
   686           break;
       
   687         }
       
   688         case T_OBJECT: {
       
   689           oop value =  mirror->obj_field_acquire(fd->offset());
       
   690           if (value == NULL) {
       
   691             _out->print_cr("null");
       
   692           } else if (value->is_instance()) {
       
   693             if (value->is_a(SystemDictionary::String_klass())) {
       
   694               const char* ascii_value = java_lang_String::as_quoted_ascii(value);
       
   695               _out->print("\"%s\"", (ascii_value != NULL) ? ascii_value : "");
       
   696             } else {
       
   697               const char* klass_name  = value->klass()->name()->as_quoted_ascii();
       
   698               _out->print_cr("%s", klass_name);
       
   699             }
       
   700           } else {
   695           } else {
   701             ShouldNotReachHere();
   696             ShouldNotReachHere();
   702           }
   697           }
   703           break;
   698           break;
   704         }
   699         }