283 }
284
285 void ArrayKlass::oop_print_on(oop obj, outputStream* st) {
286 assert(obj->is_array(), "must be array");
287 Klass::oop_print_on(obj, st);
288 st->print_cr(" - length: %d", arrayOop(obj)->length());
289 }
290
291
292 // Verification
293
294 void ArrayKlass::verify_on(outputStream* st) {
295 Klass::verify_on(st);
296 }
297
298 void ArrayKlass::oop_verify_on(oop obj, outputStream* st) {
299 guarantee(obj->is_array(), "must be array");
300 arrayOop a = arrayOop(obj);
301 guarantee(a->length() >= 0, "array with negative length?");
302 }
|
283 }
284
285 void ArrayKlass::oop_print_on(oop obj, outputStream* st) {
286 assert(obj->is_array(), "must be array");
287 Klass::oop_print_on(obj, st);
288 st->print_cr(" - length: %d", arrayOop(obj)->length());
289 }
290
291
292 // Verification
293
294 void ArrayKlass::verify_on(outputStream* st) {
295 Klass::verify_on(st);
296 }
297
298 void ArrayKlass::oop_verify_on(oop obj, outputStream* st) {
299 guarantee(obj->is_array(), "must be array");
300 arrayOop a = arrayOop(obj);
301 guarantee(a->length() >= 0, "array with negative length?");
302 }
303
304 int ArrayKlass::hash_offset_in_bytes(oop obj) const {
305 assert(UseCompactObjectHeaders, "only with compact i-hash");
306 arrayOop ary = arrayOop(obj);
307 BasicType type = element_type();
308 return ary->base_offset_in_bytes(type) + (ary->length() << log2_element_size());
309 }
|