< prev index next >

src/hotspot/share/classfile/systemDictionary.hpp

Print this page




 626                                                               Handle protection_domain,
 627                                                               TRAPS);
 628   static InstanceKlass* resolve_instance_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
 629   static Klass* resolve_array_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
 630   static InstanceKlass* handle_parallel_super_load(Symbol* class_name, Symbol* supername, Handle class_loader, Handle protection_domain, Handle lockObject, TRAPS);
 631   // Wait on SystemDictionary_lock; unlocks lockObject before
 632   // waiting; relocks lockObject with correct recursion count
 633   // after waiting, but before reentering SystemDictionary_lock
 634   // to preserve lock order semantics.
 635   static void double_lock_wait(Handle lockObject, TRAPS);
 636   static void define_instance_class(InstanceKlass* k, TRAPS);
 637   static InstanceKlass* find_or_define_instance_class(Symbol* class_name,
 638                                                 Handle class_loader,
 639                                                 InstanceKlass* k, TRAPS);
 640   static bool is_shared_class_visible(Symbol* class_name, InstanceKlass* ik,
 641                                       Handle class_loader, TRAPS);
 642   static InstanceKlass* load_shared_class(InstanceKlass* ik,
 643                                           Handle class_loader,
 644                                           Handle protection_domain,
 645                                           TRAPS);



 646   static InstanceKlass* load_instance_class(Symbol* class_name, Handle class_loader, TRAPS);
 647   static Handle compute_loader_lock_object(Handle class_loader, TRAPS);
 648   static void check_loader_lock_contention(Handle loader_lock, TRAPS);
 649   static bool is_parallelCapable(Handle class_loader);
 650   static bool is_parallelDefine(Handle class_loader);
 651 
 652 public:
 653   static InstanceKlass* load_shared_class(Symbol* class_name,
 654                                           Handle class_loader,
 655                                           TRAPS);
 656   static bool is_system_class_loader(oop class_loader);
 657   static bool is_platform_class_loader(oop class_loader);
 658   static void clear_invoke_method_table();
 659 
 660   // Returns TRUE if the method is a non-public member of class java.lang.Object.
 661   static bool is_nonpublic_Object_method(Method* m) {
 662     assert(m != NULL, "Unexpected NULL Method*");
 663     return !m->is_public() && m->method_holder() == SystemDictionary::Object_klass();
 664   }
 665 
 666   static void initialize_oop_storage();
 667   static OopStorage* vm_weak_oop_storage();
 668 
 669 protected:
 670   static InstanceKlass* find_shared_class(Symbol* class_name);
 671 
 672   // Setup link to hierarchy
 673   static void add_to_hierarchy(InstanceKlass* k, TRAPS);
 674 
 675   // Basic find on loaded classes




 626                                                               Handle protection_domain,
 627                                                               TRAPS);
 628   static InstanceKlass* resolve_instance_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
 629   static Klass* resolve_array_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
 630   static InstanceKlass* handle_parallel_super_load(Symbol* class_name, Symbol* supername, Handle class_loader, Handle protection_domain, Handle lockObject, TRAPS);
 631   // Wait on SystemDictionary_lock; unlocks lockObject before
 632   // waiting; relocks lockObject with correct recursion count
 633   // after waiting, but before reentering SystemDictionary_lock
 634   // to preserve lock order semantics.
 635   static void double_lock_wait(Handle lockObject, TRAPS);
 636   static void define_instance_class(InstanceKlass* k, TRAPS);
 637   static InstanceKlass* find_or_define_instance_class(Symbol* class_name,
 638                                                 Handle class_loader,
 639                                                 InstanceKlass* k, TRAPS);
 640   static bool is_shared_class_visible(Symbol* class_name, InstanceKlass* ik,
 641                                       Handle class_loader, TRAPS);
 642   static InstanceKlass* load_shared_class(InstanceKlass* ik,
 643                                           Handle class_loader,
 644                                           Handle protection_domain,
 645                                           TRAPS);
 646   static InstanceKlass* load_shared_boot_class(Symbol* class_name,
 647                                                Handle class_loader,
 648                                                TRAPS);
 649   static InstanceKlass* load_instance_class(Symbol* class_name, Handle class_loader, TRAPS);
 650   static Handle compute_loader_lock_object(Handle class_loader, TRAPS);
 651   static void check_loader_lock_contention(Handle loader_lock, TRAPS);
 652   static bool is_parallelCapable(Handle class_loader);
 653   static bool is_parallelDefine(Handle class_loader);
 654 
 655 public:



 656   static bool is_system_class_loader(oop class_loader);
 657   static bool is_platform_class_loader(oop class_loader);
 658   static void clear_invoke_method_table();
 659 
 660   // Returns TRUE if the method is a non-public member of class java.lang.Object.
 661   static bool is_nonpublic_Object_method(Method* m) {
 662     assert(m != NULL, "Unexpected NULL Method*");
 663     return !m->is_public() && m->method_holder() == SystemDictionary::Object_klass();
 664   }
 665 
 666   static void initialize_oop_storage();
 667   static OopStorage* vm_weak_oop_storage();
 668 
 669 protected:
 670   static InstanceKlass* find_shared_class(Symbol* class_name);
 671 
 672   // Setup link to hierarchy
 673   static void add_to_hierarchy(InstanceKlass* k, TRAPS);
 674 
 675   // Basic find on loaded classes


< prev index next >