This commit is contained in:
Jesper Wilhelmsson 2019-01-15 22:54:09 +01:00
commit a8c5f1e59a
64 changed files with 1781 additions and 378 deletions

View file

@ -4486,33 +4486,6 @@ void ClassFileParser::set_precomputed_flags(InstanceKlass* ik) {
}
}
// Attach super classes and interface classes to class loader data
static void record_defined_class_dependencies(const InstanceKlass* defined_klass,
TRAPS) {
assert(defined_klass != NULL, "invariant");
ClassLoaderData* const defining_loader_data = defined_klass->class_loader_data();
if (defining_loader_data->is_the_null_class_loader_data()) {
// Dependencies to null class loader data are implicit.
return;
} else {
// add super class dependency
Klass* const super = defined_klass->super();
if (super != NULL) {
defining_loader_data->record_dependency(super);
}
// add super interface dependencies
const Array<InstanceKlass*>* const local_interfaces = defined_klass->local_interfaces();
if (local_interfaces != NULL) {
const int length = local_interfaces->length();
for (int i = 0; i < length; i++) {
defining_loader_data->record_dependency(local_interfaces->at(i));
}
}
}
}
// utility methods for appending an array with check for duplicates
static void append_interfaces(GrowableArray<InstanceKlass*>* result,
@ -5719,9 +5692,6 @@ void ClassFileParser::fill_instance_klass(InstanceKlass* ik, bool changed_by_loa
}
}
// Update the loader_data graph.
record_defined_class_dependencies(ik, CHECK);
ClassLoadingService::notify_class_loaded(ik, false /* not shared class */);
if (!is_internal()) {