equal
deleted
inserted
replaced
832 |
832 |
833 // Call resolve_super so classcircularity is checked |
833 // Call resolve_super so classcircularity is checked |
834 const Klass* const k = |
834 const Klass* const k = |
835 SystemDictionary::resolve_super_or_fail(_class_name, |
835 SystemDictionary::resolve_super_or_fail(_class_name, |
836 unresolved_klass, |
836 unresolved_klass, |
837 _loader_data->class_loader(), |
837 Handle(THREAD, _loader_data->class_loader()), |
838 _protection_domain, |
838 _protection_domain, |
839 false, |
839 false, |
840 CHECK); |
840 CHECK); |
841 interf = KlassHandle(THREAD, k); |
841 interf = KlassHandle(THREAD, k); |
842 } |
842 } |
2849 _methods = MetadataFactory::new_array<Method*>(_loader_data, |
2849 _methods = MetadataFactory::new_array<Method*>(_loader_data, |
2850 length, |
2850 length, |
2851 NULL, |
2851 NULL, |
2852 CHECK); |
2852 CHECK); |
2853 |
2853 |
2854 HandleMark hm(THREAD); |
|
2855 for (int index = 0; index < length; index++) { |
2854 for (int index = 0; index < length; index++) { |
2856 Method* method = parse_method(cfs, |
2855 Method* method = parse_method(cfs, |
2857 is_interface, |
2856 is_interface, |
2858 _cp, |
2857 _cp, |
2859 promoted_flags, |
2858 promoted_flags, |
5355 Handle module_handle(THREAD, JNIHandles::resolve(module_entry->module())); |
5354 Handle module_handle(THREAD, JNIHandles::resolve(module_entry->module())); |
5356 |
5355 |
5357 // Allocate mirror and initialize static fields |
5356 // Allocate mirror and initialize static fields |
5358 // The create_mirror() call will also call compute_modifiers() |
5357 // The create_mirror() call will also call compute_modifiers() |
5359 java_lang_Class::create_mirror(ik, |
5358 java_lang_Class::create_mirror(ik, |
5360 _loader_data->class_loader(), |
5359 Handle(THREAD, _loader_data->class_loader()), |
5361 module_handle, |
5360 module_handle, |
5362 _protection_domain, |
5361 _protection_domain, |
5363 CHECK); |
5362 CHECK); |
5364 |
5363 |
5365 assert(_all_mirandas != NULL, "invariant"); |
5364 assert(_all_mirandas != NULL, "invariant"); |
5913 // errors not checked yet. |
5912 // errors not checked yet. |
5914 guarantee_property(super_class_name == vmSymbols::java_lang_Object(), |
5913 guarantee_property(super_class_name == vmSymbols::java_lang_Object(), |
5915 "Interfaces must have java.lang.Object as superclass in class file %s", |
5914 "Interfaces must have java.lang.Object as superclass in class file %s", |
5916 CHECK); |
5915 CHECK); |
5917 } |
5916 } |
|
5917 Handle loader(THREAD, _loader_data->class_loader()); |
5918 _super_klass = (const InstanceKlass*) |
5918 _super_klass = (const InstanceKlass*) |
5919 SystemDictionary::resolve_super_or_fail(_class_name, |
5919 SystemDictionary::resolve_super_or_fail(_class_name, |
5920 super_class_name, |
5920 super_class_name, |
5921 _loader_data->class_loader(), |
5921 loader, |
5922 _protection_domain, |
5922 _protection_domain, |
5923 true, |
5923 true, |
5924 CHECK); |
5924 CHECK); |
5925 } |
5925 } |
5926 |
5926 |
5958 // sort methods |
5958 // sort methods |
5959 _method_ordering = sort_methods(_methods); |
5959 _method_ordering = sort_methods(_methods); |
5960 |
5960 |
5961 _all_mirandas = new GrowableArray<Method*>(20); |
5961 _all_mirandas = new GrowableArray<Method*>(20); |
5962 |
5962 |
|
5963 Handle loader(THREAD, _loader_data->class_loader()); |
5963 klassVtable::compute_vtable_size_and_num_mirandas(&_vtable_size, |
5964 klassVtable::compute_vtable_size_and_num_mirandas(&_vtable_size, |
5964 &_num_miranda_methods, |
5965 &_num_miranda_methods, |
5965 _all_mirandas, |
5966 _all_mirandas, |
5966 _super_klass, |
5967 _super_klass, |
5967 _methods, |
5968 _methods, |
5968 _access_flags, |
5969 _access_flags, |
5969 _major_version, |
5970 _major_version, |
5970 _loader_data->class_loader(), |
5971 loader, |
5971 _class_name, |
5972 _class_name, |
5972 _local_interfaces, |
5973 _local_interfaces, |
5973 CHECK); |
5974 CHECK); |
5974 |
5975 |
5975 // Size of Java itable (in words) |
5976 // Size of Java itable (in words) |