src/share/vm/oops/klass.cpp

Print this page




 675 bool Klass::verify_vtable_index(int i) {
 676   if (oop_is_instance()) {
 677     int limit = ((InstanceKlass*)this)->vtable_length()/vtableEntry::size();
 678     assert(i >= 0 && i < limit, err_msg("index %d out of bounds %d", i, limit));
 679   } else {
 680     assert(oop_is_array(), "Must be");
 681     int limit = ((ArrayKlass*)this)->vtable_length()/vtableEntry::size();
 682     assert(i >= 0 && i < limit, err_msg("index %d out of bounds %d", i, limit));
 683   }
 684   return true;
 685 }
 686 
 687 bool Klass::verify_itable_index(int i) {
 688   assert(oop_is_instance(), "");
 689   int method_count = klassItable::method_count_for_interface(this);
 690   assert(i >= 0 && i < method_count, "index out of bounds");
 691   return true;
 692 }
 693 
 694 #endif




















 675 bool Klass::verify_vtable_index(int i) {
 676   if (oop_is_instance()) {
 677     int limit = ((InstanceKlass*)this)->vtable_length()/vtableEntry::size();
 678     assert(i >= 0 && i < limit, err_msg("index %d out of bounds %d", i, limit));
 679   } else {
 680     assert(oop_is_array(), "Must be");
 681     int limit = ((ArrayKlass*)this)->vtable_length()/vtableEntry::size();
 682     assert(i >= 0 && i < limit, err_msg("index %d out of bounds %d", i, limit));
 683   }
 684   return true;
 685 }
 686 
 687 bool Klass::verify_itable_index(int i) {
 688   assert(oop_is_instance(), "");
 689   int method_count = klassItable::method_count_for_interface(this);
 690   assert(i >= 0 && i < method_count, "index out of bounds");
 691   return true;
 692 }
 693 
 694 #endif
 695 
 696 /////////////// Unit tests ///////////////
 697 
 698 #ifndef PRODUCT
 699 
 700 class TestKlass {
 701  public:
 702   static void test_oop_is_instanceClassLoader() {
 703     assert(SystemDictionary::ClassLoader_klass()->oop_is_instanceClassLoader(), "assert");
 704     assert(!SystemDictionary::String_klass()->oop_is_instanceClassLoader(), "assert");
 705   }
 706 };
 707 
 708 void TestKlass_test() {
 709   TestKlass::test_oop_is_instanceClassLoader();
 710 }
 711 
 712 #endif