src/hotspot/share/classfile/systemDictionary.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File webrev Sdiff src/hotspot/share/classfile

src/hotspot/share/classfile/systemDictionary.hpp

Print this page




 638   static InstanceKlass* load_instance_class(Symbol* class_name, Handle class_loader, TRAPS);
 639   static Handle compute_loader_lock_object(Handle class_loader, TRAPS);
 640   static void check_loader_lock_contention(Handle loader_lock, TRAPS);
 641   static bool is_parallelCapable(Handle class_loader);
 642   static bool is_parallelDefine(Handle class_loader);
 643 
 644 public:
 645   static InstanceKlass* load_shared_class(Symbol* class_name,
 646                                           Handle class_loader,
 647                                           TRAPS);
 648   static bool is_system_class_loader(oop class_loader);
 649   static bool is_platform_class_loader(oop class_loader);
 650   static void clear_invoke_method_table();
 651 
 652 protected:
 653   static InstanceKlass* find_shared_class(Symbol* class_name);
 654 
 655   // Setup link to hierarchy
 656   static void add_to_hierarchy(InstanceKlass* k, TRAPS);
 657 
 658   // We pass in the hashtable index so we can calculate it outside of
 659   // the SystemDictionary_lock.
 660 
 661   // Basic find on loaded classes
 662   static InstanceKlass* find_class(int index, unsigned int hash,
 663                                    Symbol* name, Dictionary* dictionary);
 664   static InstanceKlass* find_class(Symbol* class_name, ClassLoaderData* loader_data);
 665 
 666   // Basic find on classes in the midst of being loaded
 667   static Symbol* find_placeholder(Symbol* name, ClassLoaderData* loader_data);
 668 
 669   // Add a placeholder for a class being loaded
 670   static void add_placeholder(int index,
 671                               Symbol* class_name,
 672                               ClassLoaderData* loader_data);
 673   static void remove_placeholder(int index,
 674                                  Symbol* class_name,
 675                                  ClassLoaderData* loader_data);
 676 
 677   // Performs cleanups after resolve_super_or_fail. This typically needs
 678   // to be called on failure.
 679   // Won't throw, but can block.
 680   static void resolution_cleanups(Symbol* class_name,
 681                                   ClassLoaderData* loader_data,
 682                                   TRAPS);
 683 
 684   // Initialization
 685   static void initialize_preloaded_classes(TRAPS);
 686 
 687   // Class loader constraints
 688   static void check_constraints(int index, unsigned int hash,
 689                                 InstanceKlass* k, Handle loader,
 690                                 bool defining, TRAPS);
 691   static void update_dictionary(int d_index, unsigned int d_hash,
 692                                 int p_index, unsigned int p_hash,
 693                                 InstanceKlass* k, Handle loader,
 694                                 TRAPS);
 695 
 696   // Variables holding commonly used klasses (preloaded)
 697   static InstanceKlass* _well_known_klasses[];
 698 
 699   // Lazily loaded klasses
 700   static InstanceKlass* volatile _abstract_ownable_synchronizer_klass;
 701 
 702   // table of box klasses (int_klass, etc.)
 703   static InstanceKlass* _box_klasses[T_VOID+1];
 704 
 705   static oop  _java_system_loader;
 706   static oop  _java_platform_loader;
 707 
 708   static bool _has_loadClassInternal;
 709   static bool _has_checkPackageAccess;
 710 };
 711 


 638   static InstanceKlass* load_instance_class(Symbol* class_name, Handle class_loader, TRAPS);
 639   static Handle compute_loader_lock_object(Handle class_loader, TRAPS);
 640   static void check_loader_lock_contention(Handle loader_lock, TRAPS);
 641   static bool is_parallelCapable(Handle class_loader);
 642   static bool is_parallelDefine(Handle class_loader);
 643 
 644 public:
 645   static InstanceKlass* load_shared_class(Symbol* class_name,
 646                                           Handle class_loader,
 647                                           TRAPS);
 648   static bool is_system_class_loader(oop class_loader);
 649   static bool is_platform_class_loader(oop class_loader);
 650   static void clear_invoke_method_table();
 651 
 652 protected:
 653   static InstanceKlass* find_shared_class(Symbol* class_name);
 654 
 655   // Setup link to hierarchy
 656   static void add_to_hierarchy(InstanceKlass* k, TRAPS);
 657 



 658   // Basic find on loaded classes
 659   static InstanceKlass* find_class(unsigned int hash,
 660                                    Symbol* name, Dictionary* dictionary);
 661   static InstanceKlass* find_class(Symbol* class_name, ClassLoaderData* loader_data);
 662 
 663   // Basic find on classes in the midst of being loaded
 664   static Symbol* find_placeholder(Symbol* name, ClassLoaderData* loader_data);
 665 
 666   // Add a placeholder for a class being loaded
 667   static void add_placeholder(int index,
 668                               Symbol* class_name,
 669                               ClassLoaderData* loader_data);
 670   static void remove_placeholder(int index,
 671                                  Symbol* class_name,
 672                                  ClassLoaderData* loader_data);
 673 
 674   // Performs cleanups after resolve_super_or_fail. This typically needs
 675   // to be called on failure.
 676   // Won't throw, but can block.
 677   static void resolution_cleanups(Symbol* class_name,
 678                                   ClassLoaderData* loader_data,
 679                                   TRAPS);
 680 
 681   // Initialization
 682   static void initialize_preloaded_classes(TRAPS);
 683 
 684   // Class loader constraints
 685   static void check_constraints(unsigned int hash,
 686                                 InstanceKlass* k, Handle loader,
 687                                 bool defining, TRAPS);
 688   static void update_dictionary(unsigned int d_hash,
 689                                 int p_index, unsigned int p_hash,
 690                                 InstanceKlass* k, Handle loader,
 691                                 TRAPS);
 692 
 693   // Variables holding commonly used klasses (preloaded)
 694   static InstanceKlass* _well_known_klasses[];
 695 
 696   // Lazily loaded klasses
 697   static InstanceKlass* volatile _abstract_ownable_synchronizer_klass;
 698 
 699   // table of box klasses (int_klass, etc.)
 700   static InstanceKlass* _box_klasses[T_VOID+1];
 701 
 702   static oop  _java_system_loader;
 703   static oop  _java_platform_loader;
 704 
 705   static bool _has_loadClassInternal;
 706   static bool _has_checkPackageAccess;
 707 };
 708 
src/hotspot/share/classfile/systemDictionary.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File