449 }
450 }
451
452 #endif //PRODUCT
453
454 static int max_objArray_print_length = 4;
455
456 void ObjArrayKlass::oop_print_value_on(oop obj, outputStream* st) {
457 assert(obj->is_objArray(), "must be objArray");
458 st->print("a ");
459 element_klass()->print_value_on(st);
460 int len = objArrayOop(obj)->length();
461 st->print("[%d] ", len);
462 obj->print_address_on(st);
463 if (NOT_PRODUCT(PrintOopAddress ||) PrintMiscellaneous && (WizardMode || Verbose)) {
464 st->print("{");
465 for (int i = 0; i < len; i++) {
466 if (i > max_objArray_print_length) {
467 st->print("..."); break;
468 }
469 st->print(" "INTPTR_FORMAT, (intptr_t)(void*)objArrayOop(obj)->obj_at(i));
470 }
471 st->print(" }");
472 }
473 }
474
475 const char* ObjArrayKlass::internal_name() const {
476 return external_name();
477 }
478
479
480 // Verification
481
482 void ObjArrayKlass::verify_on(outputStream* st) {
483 ArrayKlass::verify_on(st);
484 guarantee(element_klass()->is_klass(), "should be klass");
485 guarantee(bottom_klass()->is_klass(), "should be klass");
486 Klass* bk = bottom_klass();
487 guarantee(bk->oop_is_instance() || bk->oop_is_typeArray(), "invalid bottom klass");
488 }
489
|
449 }
450 }
451
452 #endif //PRODUCT
453
454 static int max_objArray_print_length = 4;
455
456 void ObjArrayKlass::oop_print_value_on(oop obj, outputStream* st) {
457 assert(obj->is_objArray(), "must be objArray");
458 st->print("a ");
459 element_klass()->print_value_on(st);
460 int len = objArrayOop(obj)->length();
461 st->print("[%d] ", len);
462 obj->print_address_on(st);
463 if (NOT_PRODUCT(PrintOopAddress ||) PrintMiscellaneous && (WizardMode || Verbose)) {
464 st->print("{");
465 for (int i = 0; i < len; i++) {
466 if (i > max_objArray_print_length) {
467 st->print("..."); break;
468 }
469 st->print(" " INTPTR_FORMAT, (intptr_t)(void*)objArrayOop(obj)->obj_at(i));
470 }
471 st->print(" }");
472 }
473 }
474
475 const char* ObjArrayKlass::internal_name() const {
476 return external_name();
477 }
478
479
480 // Verification
481
482 void ObjArrayKlass::verify_on(outputStream* st) {
483 ArrayKlass::verify_on(st);
484 guarantee(element_klass()->is_klass(), "should be klass");
485 guarantee(bottom_klass()->is_klass(), "should be klass");
486 Klass* bk = bottom_klass();
487 guarantee(bk->oop_is_instance() || bk->oop_is_typeArray(), "invalid bottom klass");
488 }
489
|