src/share/vm/oops/klass.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
8014013 Cdiff src/share/vm/oops/klass.cpp
src/share/vm/oops/klass.cpp
Print this page
*** 672,686 ****
guarantee(obj->klass()->is_klass(), "klass field is not a klass");
}
#ifndef PRODUCT
! void Klass::verify_vtable_index(int i) {
if (oop_is_instance()) {
! assert(i>=0 && i<((InstanceKlass*)this)->vtable_length()/vtableEntry::size(), "index out of bounds");
} else {
assert(oop_is_array(), "Must be");
! assert(i>=0 && i<((ArrayKlass*)this)->vtable_length()/vtableEntry::size(), "index out of bounds");
}
}
#endif
--- 672,696 ----
guarantee(obj->klass()->is_klass(), "klass field is not a klass");
}
#ifndef PRODUCT
! bool Klass::verify_vtable_index(int i) {
if (oop_is_instance()) {
! int limit = ((InstanceKlass*)this)->vtable_length()/vtableEntry::size();
! assert(i >= 0 && i < limit, err_msg("index %d out of bounds %d", i, limit));
} else {
assert(oop_is_array(), "Must be");
! int limit = ((ArrayKlass*)this)->vtable_length()/vtableEntry::size();
! assert(i >= 0 && i < limit, err_msg("index %d out of bounds %d", i, limit));
}
+ return true;
+ }
+
+ bool Klass::verify_itable_index(int i) {
+ assert(oop_is_instance(), "");
+ int method_count = klassItable::method_count_for_interface(this);
+ assert(i >= 0 && i < method_count, "index out of bounds");
+ return true;
}
#endif
src/share/vm/oops/klass.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File