< prev index next >

src/hotspot/share/classfile/systemDictionary.hpp

Print this page




 575   static SymbolPropertyTable* invoke_method_table() { return _invoke_method_table; }
 576 
 577   // Basic loading operations
 578   static InstanceKlass* resolve_instance_class_or_null_helper(Symbol* name,
 579                                                               Handle class_loader,
 580                                                               Handle protection_domain,
 581                                                               TRAPS);
 582   static InstanceKlass* resolve_instance_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
 583   static Klass* resolve_array_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
 584   static InstanceKlass* handle_parallel_super_load(Symbol* class_name, Symbol* supername, Handle class_loader, Handle protection_domain, Handle lockObject, TRAPS);
 585   // Wait on SystemDictionary_lock; unlocks lockObject before
 586   // waiting; relocks lockObject with correct recursion count
 587   // after waiting, but before reentering SystemDictionary_lock
 588   // to preserve lock order semantics.
 589   static void double_lock_wait(Handle lockObject, TRAPS);
 590   static void define_instance_class(InstanceKlass* k, TRAPS);
 591   static InstanceKlass* find_or_define_instance_class(Symbol* class_name,
 592                                                 Handle class_loader,
 593                                                 InstanceKlass* k, TRAPS);
 594   static bool is_shared_class_visible(Symbol* class_name, InstanceKlass* ik,

 595                                       Handle class_loader, TRAPS);
 596   static bool check_shared_class_super_type(InstanceKlass* child, InstanceKlass* super,
 597                                             Handle class_loader,  Handle protection_domain,
 598                                             bool is_superclass, TRAPS);
 599   static bool check_shared_class_super_types(InstanceKlass* ik, Handle class_loader,
 600                                                Handle protection_domain, TRAPS);
 601   static InstanceKlass* load_shared_class(InstanceKlass* ik,
 602                                           Handle class_loader,
 603                                           Handle protection_domain,
 604                                           const ClassFileStream *cfs,

 605                                           TRAPS);
 606   // Second part of load_shared_class
 607   static void load_shared_class_misc(InstanceKlass* ik, ClassLoaderData* loader_data, TRAPS) NOT_CDS_RETURN;
 608   static InstanceKlass* load_shared_boot_class(Symbol* class_name,

 609                                                TRAPS);
 610   static InstanceKlass* load_instance_class(Symbol* class_name, Handle class_loader, TRAPS);
 611   static Handle compute_loader_lock_object(Handle class_loader, TRAPS);
 612   static void check_loader_lock_contention(Handle loader_lock, TRAPS);
 613   static bool is_parallelCapable(Handle class_loader);
 614   static bool is_parallelDefine(Handle class_loader);
 615 
 616 public:
 617   static bool is_system_class_loader(oop class_loader);
 618   static bool is_platform_class_loader(oop class_loader);
 619 
 620   // Returns TRUE if the method is a non-public member of class java.lang.Object.
 621   static bool is_nonpublic_Object_method(Method* m) {
 622     assert(m != NULL, "Unexpected NULL Method*");
 623     return !m->is_public() && m->method_holder() == SystemDictionary::Object_klass();
 624   }
 625 
 626 protected:
 627   // Setup link to hierarchy
 628   static void add_to_hierarchy(InstanceKlass* k, TRAPS);




 575   static SymbolPropertyTable* invoke_method_table() { return _invoke_method_table; }
 576 
 577   // Basic loading operations
 578   static InstanceKlass* resolve_instance_class_or_null_helper(Symbol* name,
 579                                                               Handle class_loader,
 580                                                               Handle protection_domain,
 581                                                               TRAPS);
 582   static InstanceKlass* resolve_instance_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
 583   static Klass* resolve_array_class_or_null(Symbol* class_name, Handle class_loader, Handle protection_domain, TRAPS);
 584   static InstanceKlass* handle_parallel_super_load(Symbol* class_name, Symbol* supername, Handle class_loader, Handle protection_domain, Handle lockObject, TRAPS);
 585   // Wait on SystemDictionary_lock; unlocks lockObject before
 586   // waiting; relocks lockObject with correct recursion count
 587   // after waiting, but before reentering SystemDictionary_lock
 588   // to preserve lock order semantics.
 589   static void double_lock_wait(Handle lockObject, TRAPS);
 590   static void define_instance_class(InstanceKlass* k, TRAPS);
 591   static InstanceKlass* find_or_define_instance_class(Symbol* class_name,
 592                                                 Handle class_loader,
 593                                                 InstanceKlass* k, TRAPS);
 594   static bool is_shared_class_visible(Symbol* class_name, InstanceKlass* ik,
 595                                       PackageEntry* pkg_entry,
 596                                       Handle class_loader, TRAPS);
 597   static bool check_shared_class_super_type(InstanceKlass* child, InstanceKlass* super,
 598                                             Handle class_loader,  Handle protection_domain,
 599                                             bool is_superclass, TRAPS);
 600   static bool check_shared_class_super_types(InstanceKlass* ik, Handle class_loader,
 601                                                Handle protection_domain, TRAPS);
 602   static InstanceKlass* load_shared_class(InstanceKlass* ik,
 603                                           Handle class_loader,
 604                                           Handle protection_domain,
 605                                           const ClassFileStream *cfs,
 606                                           PackageEntry* pkg_entry,
 607                                           TRAPS);
 608   // Second part of load_shared_class
 609   static void load_shared_class_misc(InstanceKlass* ik, ClassLoaderData* loader_data, TRAPS) NOT_CDS_RETURN;
 610   static InstanceKlass* load_shared_boot_class(Symbol* class_name,
 611                                                PackageEntry* pkg_entry,
 612                                                TRAPS);
 613   static InstanceKlass* load_instance_class(Symbol* class_name, Handle class_loader, TRAPS);
 614   static Handle compute_loader_lock_object(Handle class_loader, TRAPS);
 615   static void check_loader_lock_contention(Handle loader_lock, TRAPS);
 616   static bool is_parallelCapable(Handle class_loader);
 617   static bool is_parallelDefine(Handle class_loader);
 618 
 619 public:
 620   static bool is_system_class_loader(oop class_loader);
 621   static bool is_platform_class_loader(oop class_loader);
 622 
 623   // Returns TRUE if the method is a non-public member of class java.lang.Object.
 624   static bool is_nonpublic_Object_method(Method* m) {
 625     assert(m != NULL, "Unexpected NULL Method*");
 626     return !m->is_public() && m->method_holder() == SystemDictionary::Object_klass();
 627   }
 628 
 629 protected:
 630   // Setup link to hierarchy
 631   static void add_to_hierarchy(InstanceKlass* k, TRAPS);


< prev index next >