< prev index next >

src/hotspot/share/classfile/systemDictionaryShared.hpp

Print this page


 205   static oop shared_jar_manifest(int index);
 206   static void atomic_set_shared_jar_manifest(int index, oop man) {
 207     atomic_set_array_index(_shared_jar_manifests, index, man);
 208   }
 209   static void allocate_shared_jar_manifest_array(int size, TRAPS);
 210   static InstanceKlass* acquire_class_for_current_thread(
 211                                  InstanceKlass *ik,
 212                                  Handle class_loader,
 213                                  Handle protection_domain,
 214                                  const ClassFileStream* cfs,
 215                                  TRAPS);
 216   static DumpTimeSharedClassInfo* find_or_allocate_info_for(InstanceKlass* k);
 217   static void write_dictionary(RunTimeSharedDictionary* dictionary,
 218                                bool is_builtin,
 219                                bool is_static_archive = true);
 220   static bool is_jfr_event_class(InstanceKlass *k);
 221   static void warn_excluded(InstanceKlass* k, const char* reason);
 222   static bool should_be_excluded(InstanceKlass* k);
 223 
 224   DEBUG_ONLY(static bool _no_class_loading_should_happen;)


 225 public:
 226   static InstanceKlass* find_builtin_class(Symbol* class_name);
 227 
 228   static const RunTimeSharedClassInfo* find_record(RunTimeSharedDictionary* static_dict,
 229                                                    RunTimeSharedDictionary* dynamic_dict,
 230                                                    Symbol* name);
 231 
 232   static bool has_platform_or_app_classes();
 233 
 234   // Called by PLATFORM/APP loader only
 235   static InstanceKlass* find_or_load_shared_class(Symbol* class_name,
 236                                                Handle class_loader,
 237                                                TRAPS);
 238 
 239 
 240   static void allocate_shared_data_arrays(int size, TRAPS);
 241   static void oops_do(OopClosure* f);
 242 
 243   // Check if sharing is supported for the class loader.
 244   static bool is_sharing_possible(ClassLoaderData* loader_data);


 309 
 310 #ifdef ASSERT
 311   class NoClassLoadingMark: public StackObj {
 312   public:
 313     NoClassLoadingMark() {
 314       assert(!_no_class_loading_should_happen, "must not be nested");
 315       _no_class_loading_should_happen = true;
 316     }
 317     ~NoClassLoadingMark() {
 318       _no_class_loading_should_happen = false;
 319     }
 320   };
 321 #endif
 322 
 323   template <typename T>
 324   static unsigned int hash_for_shared_dictionary(T* ptr) {
 325     assert(ptr > (T*)SharedBaseAddress, "must be");
 326     address p = address(ptr) - SharedBaseAddress;
 327     return primitive_hash<address>(p);
 328   }


 329 };
 330 
 331 #endif // SHARE_CLASSFILE_SYSTEMDICTIONARYSHARED_HPP


 205   static oop shared_jar_manifest(int index);
 206   static void atomic_set_shared_jar_manifest(int index, oop man) {
 207     atomic_set_array_index(_shared_jar_manifests, index, man);
 208   }
 209   static void allocate_shared_jar_manifest_array(int size, TRAPS);
 210   static InstanceKlass* acquire_class_for_current_thread(
 211                                  InstanceKlass *ik,
 212                                  Handle class_loader,
 213                                  Handle protection_domain,
 214                                  const ClassFileStream* cfs,
 215                                  TRAPS);
 216   static DumpTimeSharedClassInfo* find_or_allocate_info_for(InstanceKlass* k);
 217   static void write_dictionary(RunTimeSharedDictionary* dictionary,
 218                                bool is_builtin,
 219                                bool is_static_archive = true);
 220   static bool is_jfr_event_class(InstanceKlass *k);
 221   static void warn_excluded(InstanceKlass* k, const char* reason);
 222   static bool should_be_excluded(InstanceKlass* k);
 223 
 224   DEBUG_ONLY(static bool _no_class_loading_should_happen;)
 225   static void update_archived_mirror_native_pointers(RunTimeSharedDictionary* dict);
 226 
 227 public:
 228   static InstanceKlass* find_builtin_class(Symbol* class_name);
 229 
 230   static const RunTimeSharedClassInfo* find_record(RunTimeSharedDictionary* static_dict,
 231                                                    RunTimeSharedDictionary* dynamic_dict,
 232                                                    Symbol* name);
 233 
 234   static bool has_platform_or_app_classes();
 235 
 236   // Called by PLATFORM/APP loader only
 237   static InstanceKlass* find_or_load_shared_class(Symbol* class_name,
 238                                                Handle class_loader,
 239                                                TRAPS);
 240 
 241 
 242   static void allocate_shared_data_arrays(int size, TRAPS);
 243   static void oops_do(OopClosure* f);
 244 
 245   // Check if sharing is supported for the class loader.
 246   static bool is_sharing_possible(ClassLoaderData* loader_data);


 311 
 312 #ifdef ASSERT
 313   class NoClassLoadingMark: public StackObj {
 314   public:
 315     NoClassLoadingMark() {
 316       assert(!_no_class_loading_should_happen, "must not be nested");
 317       _no_class_loading_should_happen = true;
 318     }
 319     ~NoClassLoadingMark() {
 320       _no_class_loading_should_happen = false;
 321     }
 322   };
 323 #endif
 324 
 325   template <typename T>
 326   static unsigned int hash_for_shared_dictionary(T* ptr) {
 327     assert(ptr > (T*)SharedBaseAddress, "must be");
 328     address p = address(ptr) - SharedBaseAddress;
 329     return primitive_hash<address>(p);
 330   }
 331 
 332   static void update_archived_mirror_native_pointers() NOT_CDS_RETURN;
 333 };
 334 
 335 #endif // SHARE_CLASSFILE_SYSTEMDICTIONARYSHARED_HPP
< prev index next >