comparison src/share/vm/classfile/classFileParser.cpp @ 6983:070d523b96a7

8001471: Klass::cast() does nothing Summary: Remove function Klass::cast() and calls to it. Reviewed-by: dholmes, coleenp
author hseigel
date Mon, 12 Nov 2012 16:15:05 -0500
parents 18fb7da42534
children b2dbd323c668 90273fc0a981
comparison
equal deleted inserted replaced
6981:8c413497f434 6983:070d523b96a7
822 unresolved_klass, class_loader, protection_domain, 822 unresolved_klass, class_loader, protection_domain,
823 false, CHECK_NULL); 823 false, CHECK_NULL);
824 interf = KlassHandle(THREAD, k); 824 interf = KlassHandle(THREAD, k);
825 } 825 }
826 826
827 if (!Klass::cast(interf())->is_interface()) { 827 if (!interf()->is_interface()) {
828 THROW_MSG_(vmSymbols::java_lang_IncompatibleClassChangeError(), "Implementing class", NULL); 828 THROW_MSG_(vmSymbols::java_lang_IncompatibleClassChangeError(), "Implementing class", NULL);
829 } 829 }
830 if (InstanceKlass::cast(interf())->has_default_methods()) { 830 if (InstanceKlass::cast(interf())->has_default_methods()) {
831 *has_default_methods = true; 831 *has_default_methods = true;
832 } 832 }
3829 } 3829 }
3830 3830
3831 if (TraceClassResolution) { 3831 if (TraceClassResolution) {
3832 ResourceMark rm; 3832 ResourceMark rm;
3833 // print out the superclass. 3833 // print out the superclass.
3834 const char * from = Klass::cast(this_klass())->external_name(); 3834 const char * from = this_klass()->external_name();
3835 if (this_klass->java_super() != NULL) { 3835 if (this_klass->java_super() != NULL) {
3836 tty->print("RESOLVE %s %s (super)\n", from, InstanceKlass::cast(this_klass->java_super())->external_name()); 3836 tty->print("RESOLVE %s %s (super)\n", from, InstanceKlass::cast(this_klass->java_super())->external_name());
3837 } 3837 }
3838 // print out each of the interface classes referred to by this class. 3838 // print out each of the interface classes referred to by this class.
3839 Array<Klass*>* local_interfaces = this_klass->local_interfaces(); 3839 Array<Klass*>* local_interfaces = this_klass->local_interfaces();
3980 // Check if this klass has a vanilla default constructor 3980 // Check if this klass has a vanilla default constructor
3981 if (super == NULL) { 3981 if (super == NULL) {
3982 // java.lang.Object has empty default constructor 3982 // java.lang.Object has empty default constructor
3983 k->set_has_vanilla_constructor(); 3983 k->set_has_vanilla_constructor();
3984 } else { 3984 } else {
3985 if (Klass::cast(super)->has_vanilla_constructor() && 3985 if (super->has_vanilla_constructor() &&
3986 _has_vanilla_constructor) { 3986 _has_vanilla_constructor) {
3987 k->set_has_vanilla_constructor(); 3987 k->set_has_vanilla_constructor();
3988 } 3988 }
3989 #ifdef ASSERT 3989 #ifdef ASSERT
3990 bool v = false; 3990 bool v = false;
3991 if (Klass::cast(super)->has_vanilla_constructor()) { 3991 if (super->has_vanilla_constructor()) {
3992 Method* constructor = k->find_method(vmSymbols::object_initializer_name( 3992 Method* constructor = k->find_method(vmSymbols::object_initializer_name(
3993 ), vmSymbols::void_method_signature()); 3993 ), vmSymbols::void_method_signature());
3994 if (constructor != NULL && constructor->is_vanilla_constructor()) { 3994 if (constructor != NULL && constructor->is_vanilla_constructor()) {
3995 v = true; 3995 v = true;
3996 } 3996 }
4128 void ClassFileParser::check_super_interface_access(instanceKlassHandle this_klass, TRAPS) { 4128 void ClassFileParser::check_super_interface_access(instanceKlassHandle this_klass, TRAPS) {
4129 Array<Klass*>* local_interfaces = this_klass->local_interfaces(); 4129 Array<Klass*>* local_interfaces = this_klass->local_interfaces();
4130 int lng = local_interfaces->length(); 4130 int lng = local_interfaces->length();
4131 for (int i = lng - 1; i >= 0; i--) { 4131 for (int i = lng - 1; i >= 0; i--) {
4132 Klass* k = local_interfaces->at(i); 4132 Klass* k = local_interfaces->at(i);
4133 assert (k != NULL && Klass::cast(k)->is_interface(), "invalid interface"); 4133 assert (k != NULL && k->is_interface(), "invalid interface");
4134 if (!Reflection::verify_class_access(this_klass(), k, false)) { 4134 if (!Reflection::verify_class_access(this_klass(), k, false)) {
4135 ResourceMark rm(THREAD); 4135 ResourceMark rm(THREAD);
4136 Exceptions::fthrow( 4136 Exceptions::fthrow(
4137 THREAD_AND_LOCATION, 4137 THREAD_AND_LOCATION,
4138 vmSymbols::java_lang_IllegalAccessError(), 4138 vmSymbols::java_lang_IllegalAccessError(),