< prev index next >
src/hotspot/share/classfile/classFileParser.cpp
Print this page
*** 5741,5759 ****
}
// Update the loader_data graph.
record_defined_class_dependencies(ik, CHECK);
! for (FieldStream st((InstanceKlass*)ik, false, false); !st.eos(); st.next()) {
! Symbol* signature = st.signature();
! if (signature->starts_with("Q")) {
! Klass* klass = SystemDictionary::resolve_or_fail(signature,
Handle(THREAD, ik->class_loader()),
Handle(THREAD, ik->protection_domain()), true, CHECK);
assert(klass != NULL, "Sanity check");
assert(klass->access_flags().is_value_type(), "Value type expected");
! ik->set_value_field_klass(st.index(), klass);
}
}
ClassLoadingService::notify_class_loaded(ik, false /* not shared class */);
--- 5741,5758 ----
}
// Update the loader_data graph.
record_defined_class_dependencies(ik, CHECK);
! for(int i = 0; i < ik->java_fields_count(); i++) {
! if (ik->field_signature(i)->starts_with("Q")) {
! Klass* klass = SystemDictionary::resolve_or_fail(ik->field_signature(i),
Handle(THREAD, ik->class_loader()),
Handle(THREAD, ik->protection_domain()), true, CHECK);
assert(klass != NULL, "Sanity check");
assert(klass->access_flags().is_value_type(), "Value type expected");
! ik->set_value_field_klass(i, klass);
}
}
ClassLoadingService::notify_class_loaded(ik, false /* not shared class */);
< prev index next >