459 st->print("..."); break;
460 }
461 st->print(" " INTPTR_FORMAT, (intptr_t)(void*)objArrayOop(obj)->obj_at(i));
462 }
463 st->print(" }");
464 }
465 }
466
467 const char* ObjArrayKlass::internal_name() const {
468 return external_name();
469 }
470
471
472 // Verification
473
474 void ObjArrayKlass::verify_on(outputStream* st) {
475 ArrayKlass::verify_on(st);
476 guarantee(element_klass()->is_klass(), "should be klass");
477 guarantee(bottom_klass()->is_klass(), "should be klass");
478 Klass* bk = bottom_klass();
479 guarantee(bk->is_instance_klass() || bk->is_typeArray_klass(), "invalid bottom klass");
480 }
481
482 void ObjArrayKlass::oop_verify_on(oop obj, outputStream* st) {
483 ArrayKlass::oop_verify_on(obj, st);
484 guarantee(obj->is_objArray(), "must be objArray");
485 objArrayOop oa = objArrayOop(obj);
486 for(int index = 0; index < oa->length(); index++) {
487 guarantee(oa->obj_at(index)->is_oop_or_null(), "should be oop");
488 }
489 }
|
459 st->print("..."); break;
460 }
461 st->print(" " INTPTR_FORMAT, (intptr_t)(void*)objArrayOop(obj)->obj_at(i));
462 }
463 st->print(" }");
464 }
465 }
466
467 const char* ObjArrayKlass::internal_name() const {
468 return external_name();
469 }
470
471
472 // Verification
473
474 void ObjArrayKlass::verify_on(outputStream* st) {
475 ArrayKlass::verify_on(st);
476 guarantee(element_klass()->is_klass(), "should be klass");
477 guarantee(bottom_klass()->is_klass(), "should be klass");
478 Klass* bk = bottom_klass();
479 guarantee(bk->is_instance_klass() || bk->is_typeArray_klass() || bk->is_valueArray_klass(),
480 "invalid bottom klass");
481 }
482
483 void ObjArrayKlass::oop_verify_on(oop obj, outputStream* st) {
484 ArrayKlass::oop_verify_on(obj, st);
485 guarantee(obj->is_objArray(), "must be objArray");
486 objArrayOop oa = objArrayOop(obj);
487 for(int index = 0; index < oa->length(); index++) {
488 guarantee(oa->obj_at(index)->is_oop_or_null(), "should be oop");
489 }
490 }
|