640 }
641 }
642
643 #endif //PRODUCT
644
645 static int max_objArray_print_length = 4;
646
647 void ObjArrayKlass::oop_print_value_on(oop obj, outputStream* st) {
648 assert(obj->is_objArray(), "must be objArray");
649 st->print("a ");
650 element_klass()->print_value_on(st);
651 int len = objArrayOop(obj)->length();
652 st->print("[%d] ", len);
653 obj->print_address_on(st);
654 if (NOT_PRODUCT(PrintOopAddress ||) PrintMiscellaneous && (WizardMode || Verbose)) {
655 st->print("{");
656 for (int i = 0; i < len; i++) {
657 if (i > max_objArray_print_length) {
658 st->print("..."); break;
659 }
660 st->print(" "INTPTR_FORMAT, (intptr_t)(void*)objArrayOop(obj)->obj_at(i));
661 }
662 st->print(" }");
663 }
664 }
665
666 const char* ObjArrayKlass::internal_name() const {
667 return external_name();
668 }
669
670
671 // Verification
672
673 void ObjArrayKlass::verify_on(outputStream* st) {
674 ArrayKlass::verify_on(st);
675 guarantee(element_klass()->is_klass(), "should be klass");
676 guarantee(bottom_klass()->is_klass(), "should be klass");
677 Klass* bk = bottom_klass();
678 guarantee(bk->oop_is_instance() || bk->oop_is_typeArray(), "invalid bottom klass");
679 }
680
|
640 }
641 }
642
643 #endif //PRODUCT
644
645 static int max_objArray_print_length = 4;
646
647 void ObjArrayKlass::oop_print_value_on(oop obj, outputStream* st) {
648 assert(obj->is_objArray(), "must be objArray");
649 st->print("a ");
650 element_klass()->print_value_on(st);
651 int len = objArrayOop(obj)->length();
652 st->print("[%d] ", len);
653 obj->print_address_on(st);
654 if (NOT_PRODUCT(PrintOopAddress ||) PrintMiscellaneous && (WizardMode || Verbose)) {
655 st->print("{");
656 for (int i = 0; i < len; i++) {
657 if (i > max_objArray_print_length) {
658 st->print("..."); break;
659 }
660 st->print(" " INTPTR_FORMAT, (intptr_t)(void*)objArrayOop(obj)->obj_at(i));
661 }
662 st->print(" }");
663 }
664 }
665
666 const char* ObjArrayKlass::internal_name() const {
667 return external_name();
668 }
669
670
671 // Verification
672
673 void ObjArrayKlass::verify_on(outputStream* st) {
674 ArrayKlass::verify_on(st);
675 guarantee(element_klass()->is_klass(), "should be klass");
676 guarantee(bottom_klass()->is_klass(), "should be klass");
677 Klass* bk = bottom_klass();
678 guarantee(bk->oop_is_instance() || bk->oop_is_typeArray(), "invalid bottom klass");
679 }
680
|