comparison src/share/vm/classfile/classFileParser.cpp @ 6852:19eb999cb72c

8000740: remove LinkWellKnownClasses Reviewed-by: kvn, jrose
author twisti
date Thu, 11 Oct 2012 14:46:20 -0700
parents 8e47bac5643a
children d804e148cff8
comparison
equal deleted inserted replaced
6851:94e9408dbf50 6852:19eb999cb72c
814 // Call resolve_super so classcircularity is checked 814 // Call resolve_super so classcircularity is checked
815 Klass* k = SystemDictionary::resolve_super_or_fail(class_name, 815 Klass* k = SystemDictionary::resolve_super_or_fail(class_name,
816 unresolved_klass, class_loader, protection_domain, 816 unresolved_klass, class_loader, protection_domain,
817 false, CHECK_NULL); 817 false, CHECK_NULL);
818 interf = KlassHandle(THREAD, k); 818 interf = KlassHandle(THREAD, k);
819
820 if (LinkWellKnownClasses) // my super type is well known to me
821 cp->klass_at_put(interface_index, interf()); // eagerly resolve
822 } 819 }
823 820
824 if (!Klass::cast(interf())->is_interface()) { 821 if (!Klass::cast(interf())->is_interface()) {
825 THROW_MSG_(vmSymbols::java_lang_IncompatibleClassChangeError(), "Implementing class", NULL); 822 THROW_MSG_(vmSymbols::java_lang_IncompatibleClassChangeError(), "Implementing class", NULL);
826 } 823 }
3195 true, 3192 true,
3196 CHECK_(nullHandle)); 3193 CHECK_(nullHandle));
3197 3194
3198 KlassHandle kh (THREAD, k); 3195 KlassHandle kh (THREAD, k);
3199 super_klass = instanceKlassHandle(THREAD, kh()); 3196 super_klass = instanceKlassHandle(THREAD, kh());
3200 if (LinkWellKnownClasses) // my super class is well known to me
3201 cp->klass_at_put(super_class_index, super_klass()); // eagerly resolve
3202 } 3197 }
3203 if (super_klass.not_null()) { 3198 if (super_klass.not_null()) {
3204 if (super_klass->is_interface()) { 3199 if (super_klass->is_interface()) {
3205 ResourceMark rm(THREAD); 3200 ResourceMark rm(THREAD);
3206 Exceptions::fthrow( 3201 Exceptions::fthrow(
3642 // size is equal to the number of methods in the class. If 3637 // size is equal to the number of methods in the class. If
3643 // that changes, then InstanceKlass::idnum_can_increment() 3638 // that changes, then InstanceKlass::idnum_can_increment()
3644 // has to be changed accordingly. 3639 // has to be changed accordingly.
3645 this_klass->set_initial_method_idnum(methods->length()); 3640 this_klass->set_initial_method_idnum(methods->length());
3646 this_klass->set_name(cp->klass_name_at(this_class_index)); 3641 this_klass->set_name(cp->klass_name_at(this_class_index));
3647 if (LinkWellKnownClasses || is_anonymous()) // I am well known to myself 3642 if (is_anonymous()) // I am well known to myself
3648 cp->klass_at_put(this_class_index, this_klass()); // eagerly resolve 3643 cp->klass_at_put(this_class_index, this_klass()); // eagerly resolve
3649 3644
3650 if (fields_annotations != NULL || 3645 if (fields_annotations != NULL ||
3651 methods_annotations != NULL || 3646 methods_annotations != NULL ||
3652 methods_parameter_annotations != NULL || 3647 methods_parameter_annotations != NULL ||