619 static InstanceKlass* resolve_instance_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
620 static Klass* resolve_array_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
621 static InstanceKlass* handle_parallel_super_load(Symbol* class_name, Symbol* supername, Handle class_loader, Handle protection_domain, Handle lockObject, TRAPS);
622 // Wait on SystemDictionary_lock; unlocks lockObject before
623 // waiting; relocks lockObject with correct recursion count
624 // after waiting, but before reentering SystemDictionary_lock
625 // to preserve lock order semantics.
626 static void double_lock_wait(Handle lockObject, TRAPS);
627 static void define_instance_class(InstanceKlass* k, TRAPS);
628 static InstanceKlass* find_or_define_instance_class(Symbol* class_name,
629 Handle class_loader,
630 InstanceKlass* k, TRAPS);
631 static bool is_shared_class_visible(Symbol* class_name, InstanceKlass* ik,
632 PackageEntry* pkg_entry,
633 Handle class_loader, TRAPS);
634 static bool check_shared_class_super_type(InstanceKlass* child, InstanceKlass* super,
635 Handle class_loader, Handle protection_domain,
636 bool is_superclass, TRAPS);
637 static bool check_shared_class_super_types(InstanceKlass* ik, Handle class_loader,
638 Handle protection_domain, TRAPS);
639 static InstanceKlass* load_shared_class(InstanceKlass* ik,
640 Handle class_loader,
641 Handle protection_domain,
642 const ClassFileStream *cfs,
643 PackageEntry* pkg_entry,
644 TRAPS);
645 // Second part of load_shared_class
646 static void load_shared_class_misc(InstanceKlass* ik, ClassLoaderData* loader_data, TRAPS) NOT_CDS_RETURN;
647 static InstanceKlass* load_shared_boot_class(Symbol* class_name,
648 PackageEntry* pkg_entry,
649 TRAPS);
650 static InstanceKlass* load_instance_class(Symbol* class_name, Handle class_loader, TRAPS);
651 static Handle compute_loader_lock_object(Handle class_loader, TRAPS);
652 static void check_loader_lock_contention(Handle loader_lock, TRAPS);
653 static bool is_parallelCapable(Handle class_loader);
654 static bool is_parallelDefine(Handle class_loader);
655
656 public:
657 static bool is_system_class_loader(oop class_loader);
658 static bool is_platform_class_loader(oop class_loader);
|
619 static InstanceKlass* resolve_instance_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
620 static Klass* resolve_array_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
621 static InstanceKlass* handle_parallel_super_load(Symbol* class_name, Symbol* supername, Handle class_loader, Handle protection_domain, Handle lockObject, TRAPS);
622 // Wait on SystemDictionary_lock; unlocks lockObject before
623 // waiting; relocks lockObject with correct recursion count
624 // after waiting, but before reentering SystemDictionary_lock
625 // to preserve lock order semantics.
626 static void double_lock_wait(Handle lockObject, TRAPS);
627 static void define_instance_class(InstanceKlass* k, TRAPS);
628 static InstanceKlass* find_or_define_instance_class(Symbol* class_name,
629 Handle class_loader,
630 InstanceKlass* k, TRAPS);
631 static bool is_shared_class_visible(Symbol* class_name, InstanceKlass* ik,
632 PackageEntry* pkg_entry,
633 Handle class_loader, TRAPS);
634 static bool check_shared_class_super_type(InstanceKlass* child, InstanceKlass* super,
635 Handle class_loader, Handle protection_domain,
636 bool is_superclass, TRAPS);
637 static bool check_shared_class_super_types(InstanceKlass* ik, Handle class_loader,
638 Handle protection_domain, TRAPS);
639 static void set_shared_class_init_state(InstanceKlass* ik, InstanceKlass::ClassState state) {
640 ik->set_init_state(state);
641 }
642 static InstanceKlass* load_shared_lambda_proxy_class(InstanceKlass* ik,
643 Handle class_loader,
644 Handle protection_domain,
645 PackageEntry* pkg_entry,
646 TRAPS);
647 static InstanceKlass* load_shared_class(InstanceKlass* ik,
648 Handle class_loader,
649 Handle protection_domain,
650 const ClassFileStream *cfs,
651 PackageEntry* pkg_entry,
652 TRAPS);
653 // Second part of load_shared_class
654 static void load_shared_class_misc(InstanceKlass* ik, ClassLoaderData* loader_data, TRAPS) NOT_CDS_RETURN;
655 static InstanceKlass* load_shared_boot_class(Symbol* class_name,
656 PackageEntry* pkg_entry,
657 TRAPS);
658 static InstanceKlass* load_instance_class(Symbol* class_name, Handle class_loader, TRAPS);
659 static Handle compute_loader_lock_object(Handle class_loader, TRAPS);
660 static void check_loader_lock_contention(Handle loader_lock, TRAPS);
661 static bool is_parallelCapable(Handle class_loader);
662 static bool is_parallelDefine(Handle class_loader);
663
664 public:
665 static bool is_system_class_loader(oop class_loader);
666 static bool is_platform_class_loader(oop class_loader);
|