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 |