hotspot/src/share/vm/oops/klassVtable.cpp
changeset 5403 6b0dd9c75dde
parent 5402 c51fd0c1d005
child 5547 f4b087cbb361
equal deleted inserted replaced
5402:c51fd0c1d005 5403:6b0dd9c75dde
  1178   _verify_count = Universe::verify_count();
  1178   _verify_count = Universe::verify_count();
  1179 #endif
  1179 #endif
  1180   oop* end_of_obj = (oop*)_klass() + _klass()->size();
  1180   oop* end_of_obj = (oop*)_klass() + _klass()->size();
  1181   oop* end_of_vtable = (oop *)&table()[_length];
  1181   oop* end_of_vtable = (oop *)&table()[_length];
  1182   if (end_of_vtable > end_of_obj) {
  1182   if (end_of_vtable > end_of_obj) {
  1183     fatal1("klass %s: klass object too short (vtable extends beyond end)",
  1183     fatal(err_msg("klass %s: klass object too short (vtable extends beyond "
  1184           _klass->internal_name());
  1184                   "end)", _klass->internal_name()));
  1185   }
  1185   }
  1186 
  1186 
  1187   for (int i = 0; i < _length; i++) table()[i].verify(this, st);
  1187   for (int i = 0; i < _length; i++) table()[i].verify(this, st);
  1188   // verify consistency with superKlass vtable
  1188   // verify consistency with superKlass vtable
  1189   klassOop super = _klass->super();
  1189   klassOop super = _klass->super();
  1222   // we sub_type, because it could be a miranda method
  1222   // we sub_type, because it could be a miranda method
  1223   if (!vt->klass()->is_subtype_of(method()->method_holder())) {
  1223   if (!vt->klass()->is_subtype_of(method()->method_holder())) {
  1224 #ifndef PRODUCT
  1224 #ifndef PRODUCT
  1225     print();
  1225     print();
  1226 #endif
  1226 #endif
  1227     fatal1("vtableEntry %#lx: method is from subclass", this);
  1227     fatal(err_msg("vtableEntry " PTR_FORMAT ": method is from subclass", this));
  1228   }
  1228   }
  1229 }
  1229 }
  1230 
  1230 
  1231 #ifndef PRODUCT
  1231 #ifndef PRODUCT
  1232 
  1232