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