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