hotspot/src/share/vm/classfile/systemDictionary.hpp
changeset 46380 4a51438196cf
parent 46329 53ccc37bda19
child 46388 d7a164ad6b7f
equal deleted inserted replaced
46379:43ec76e10184 46380:4a51438196cf
   345   static Klass* find_constrained_instance_or_array_klass(Symbol* class_name,
   345   static Klass* find_constrained_instance_or_array_klass(Symbol* class_name,
   346                                                            Handle class_loader,
   346                                                            Handle class_loader,
   347                                                            TRAPS);
   347                                                            TRAPS);
   348 
   348 
   349   // Iterate over all klasses in dictionary
   349   // Iterate over all klasses in dictionary
   350   //   Just the classes from defining class loaders
   350   // Just the classes from defining class loaders
   351   static void classes_do(void f(Klass*));
   351   static void classes_do(void f(Klass*));
   352   // Added for initialize_itable_for_klass to handle exceptions
   352   // Added for initialize_itable_for_klass to handle exceptions
   353   static void classes_do(void f(Klass*, TRAPS), TRAPS);
   353   static void classes_do(void f(Klass*, TRAPS), TRAPS);
   354   //   All classes, and their class loaders
   354   // All classes, and their class loaders, including initiating class loaders
   355   static void classes_do(void f(Klass*, ClassLoaderData*));
   355   static void classes_do(void f(Klass*, ClassLoaderData*));
   356 
   356 
   357   static void placeholders_do(void f(Symbol*));
   357   // Iterate over all methods in all klasses
   358 
       
   359   // Iterate over all methods in all klasses in dictionary
       
   360   static void methods_do(void f(Method*));
   358   static void methods_do(void f(Method*));
   361 
   359 
   362   // Garbage collection support
   360   // Garbage collection support
   363 
   361 
   364   // This method applies "blk->do_oop" to all the pointers to "system"
   362   // This method applies "blk->do_oop" to all the pointers to "system"
   365   // classes and loaders.
   363   // classes and loaders.
   366   static void always_strong_oops_do(OopClosure* blk);
   364   static void always_strong_oops_do(OopClosure* blk);
   367   static void always_strong_classes_do(KlassClosure* closure);
       
   368 
   365 
   369   // Unload (that is, break root links to) all unmarked classes and
   366   // Unload (that is, break root links to) all unmarked classes and
   370   // loaders.  Returns "true" iff something was unloaded.
   367   // loaders.  Returns "true" iff something was unloaded.
   371   static bool do_unloading(BoolObjectClosure* is_alive,
   368   static bool do_unloading(BoolObjectClosure* is_alive,
   372                            bool clean_previous_versions = true);
   369                            bool clean_previous_versions = true);
   381   static void roots_oops_do(OopClosure* strong, OopClosure* weak);
   378   static void roots_oops_do(OopClosure* strong, OopClosure* weak);
   382 
   379 
   383   // System loader lock
   380   // System loader lock
   384   static oop system_loader_lock()           { return _system_loader_lock_obj; }
   381   static oop system_loader_lock()           { return _system_loader_lock_obj; }
   385 
   382 
   386 protected:
       
   387   // Extended Redefine classes support (tbi)
       
   388   static void preloaded_classes_do(KlassClosure* f);
       
   389   static void lazily_loaded_classes_do(KlassClosure* f);
       
   390 public:
   383 public:
   391   // Sharing support.
   384   // Sharing support.
   392   static void reorder_dictionary();
   385   static void reorder_dictionary();
   393   static void copy_buckets(char** top, char* end);
   386   static void copy_buckets(char** top, char* end);
   394   static void copy_table(char** top, char* end);
   387   static void copy_table(char** top, char* end);