< prev index next >

src/share/vm/classfile/systemDictionary.hpp

Print this page
rev 6864 : 8061651: Interface to the Lookup Index Cache to improve URLClassPath search time
Summary: Implemented the interface in sun.misc.URLClassPath and corresponding JVM_XXX APIs
Reviewed-by: mchung, acorn, jiangli, dholmes
rev 6875 : 8056240: Investigate increased GC remark time after class unloading changes in CRM Fuse
Reviewed-by: mgerdin, coleenp, bdelsart


 158   do_klass(LambdaForm_klass,                            java_lang_invoke_LambdaForm,               Opt                 ) \
 159   do_klass(MethodType_klass,                            java_lang_invoke_MethodType,               Pre_JSR292          ) \
 160   do_klass(BootstrapMethodError_klass,                  java_lang_BootstrapMethodError,            Pre_JSR292          ) \
 161   do_klass(CallSite_klass,                              java_lang_invoke_CallSite,                 Pre_JSR292          ) \
 162   do_klass(ConstantCallSite_klass,                      java_lang_invoke_ConstantCallSite,         Pre_JSR292          ) \
 163   do_klass(MutableCallSite_klass,                       java_lang_invoke_MutableCallSite,          Pre_JSR292          ) \
 164   do_klass(VolatileCallSite_klass,                      java_lang_invoke_VolatileCallSite,         Pre_JSR292          ) \
 165   /* Note: MethodHandle must be first, and VolatileCallSite last in group */                                             \
 166                                                                                                                          \
 167   do_klass(StringBuffer_klass,                          java_lang_StringBuffer,                    Pre                 ) \
 168   do_klass(StringBuilder_klass,                         java_lang_StringBuilder,                   Pre                 ) \
 169   do_klass(misc_Unsafe_klass,                           sun_misc_Unsafe,                           Pre                 ) \
 170                                                                                                                          \
 171   /* support for CDS */                                                                                                  \
 172   do_klass(ByteArrayInputStream_klass,                  java_io_ByteArrayInputStream,              Pre                 ) \
 173   do_klass(File_klass,                                  java_io_File,                              Pre                 ) \
 174   do_klass(URLClassLoader_klass,                        java_net_URLClassLoader,                   Pre                 ) \
 175   do_klass(URL_klass,                                   java_net_URL,                              Pre                 ) \
 176   do_klass(Jar_Manifest_klass,                          java_util_jar_Manifest,                    Pre                 ) \
 177   do_klass(sun_misc_Launcher_klass,                     sun_misc_Launcher,                         Pre                 ) \


 178   do_klass(CodeSource_klass,                            java_security_CodeSource,                  Pre                 ) \
 179                                                                                                                          \
 180   /* It's NULL in non-1.4 JDKs. */                                                                                       \
 181   do_klass(StackTraceElement_klass,                     java_lang_StackTraceElement,               Opt                 ) \
 182   /* Universe::is_gte_jdk14x_version() is not set up by this point. */                                                   \
 183   /* It's okay if this turns out to be NULL in non-1.4 JDKs. */                                                          \
 184   do_klass(nio_Buffer_klass,                            java_nio_Buffer,                           Opt                 ) \
 185                                                                                                                          \
 186   /* Preload boxing klasses */                                                                                           \
 187   do_klass(Boolean_klass,                               java_lang_Boolean,                         Pre                 ) \
 188   do_klass(Character_klass,                             java_lang_Character,                       Pre                 ) \
 189   do_klass(Float_klass,                                 java_lang_Float,                           Pre                 ) \
 190   do_klass(Double_klass,                                java_lang_Double,                          Pre                 ) \
 191   do_klass(Byte_klass,                                  java_lang_Byte,                            Pre                 ) \
 192   do_klass(Short_klass,                                 java_lang_Short,                           Pre                 ) \
 193   do_klass(Integer_klass,                               java_lang_Integer,                         Pre                 ) \
 194   do_klass(Long_klass,                                  java_lang_Long,                            Pre                 ) \
 195   /*end*/
 196 
 197 


 322   static void classes_do(void f(Klass*));
 323   // Added for initialize_itable_for_klass to handle exceptions
 324   static void classes_do(void f(Klass*, TRAPS), TRAPS);
 325   //   All classes, and their class loaders
 326   static void classes_do(void f(Klass*, ClassLoaderData*));
 327 
 328   static void placeholders_do(void f(Symbol*));
 329 
 330   // Iterate over all methods in all klasses in dictionary
 331   static void methods_do(void f(Method*));
 332 
 333   // Garbage collection support
 334 
 335   // This method applies "blk->do_oop" to all the pointers to "system"
 336   // classes and loaders.
 337   static void always_strong_oops_do(OopClosure* blk);
 338   static void always_strong_classes_do(KlassClosure* closure);
 339 
 340   // Unload (that is, break root links to) all unmarked classes and
 341   // loaders.  Returns "true" iff something was unloaded.
 342   static bool do_unloading(BoolObjectClosure* is_alive);
 343 
 344   // Used by DumpSharedSpaces only to remove classes that failed verification
 345   static void remove_classes_in_error_state();
 346 
 347   static int calculate_systemdictionary_size(int loadedclasses);
 348 
 349   // Applies "f->do_oop" to all root oops in the system dictionary.
 350   static void oops_do(OopClosure* f);
 351   static void roots_oops_do(OopClosure* strong, OopClosure* weak);
 352 
 353   // System loader lock
 354   static oop system_loader_lock()           { return _system_loader_lock_obj; }
 355 
 356 protected:
 357   // Extended Redefine classes support (tbi)
 358   static void preloaded_classes_do(KlassClosure* f);
 359   static void lazily_loaded_classes_do(KlassClosure* f);
 360 public:
 361   // Sharing support.
 362   static void reorder_dictionary();




 158   do_klass(LambdaForm_klass,                            java_lang_invoke_LambdaForm,               Opt                 ) \
 159   do_klass(MethodType_klass,                            java_lang_invoke_MethodType,               Pre_JSR292          ) \
 160   do_klass(BootstrapMethodError_klass,                  java_lang_BootstrapMethodError,            Pre_JSR292          ) \
 161   do_klass(CallSite_klass,                              java_lang_invoke_CallSite,                 Pre_JSR292          ) \
 162   do_klass(ConstantCallSite_klass,                      java_lang_invoke_ConstantCallSite,         Pre_JSR292          ) \
 163   do_klass(MutableCallSite_klass,                       java_lang_invoke_MutableCallSite,          Pre_JSR292          ) \
 164   do_klass(VolatileCallSite_klass,                      java_lang_invoke_VolatileCallSite,         Pre_JSR292          ) \
 165   /* Note: MethodHandle must be first, and VolatileCallSite last in group */                                             \
 166                                                                                                                          \
 167   do_klass(StringBuffer_klass,                          java_lang_StringBuffer,                    Pre                 ) \
 168   do_klass(StringBuilder_klass,                         java_lang_StringBuilder,                   Pre                 ) \
 169   do_klass(misc_Unsafe_klass,                           sun_misc_Unsafe,                           Pre                 ) \
 170                                                                                                                          \
 171   /* support for CDS */                                                                                                  \
 172   do_klass(ByteArrayInputStream_klass,                  java_io_ByteArrayInputStream,              Pre                 ) \
 173   do_klass(File_klass,                                  java_io_File,                              Pre                 ) \
 174   do_klass(URLClassLoader_klass,                        java_net_URLClassLoader,                   Pre                 ) \
 175   do_klass(URL_klass,                                   java_net_URL,                              Pre                 ) \
 176   do_klass(Jar_Manifest_klass,                          java_util_jar_Manifest,                    Pre                 ) \
 177   do_klass(sun_misc_Launcher_klass,                     sun_misc_Launcher,                         Pre                 ) \
 178   do_klass(sun_misc_Launcher_AppClassLoader_klass,      sun_misc_Launcher_AppClassLoader,          Pre                 ) \
 179   do_klass(sun_misc_Launcher_ExtClassLoader_klass,      sun_misc_Launcher_ExtClassLoader,          Pre                 ) \
 180   do_klass(CodeSource_klass,                            java_security_CodeSource,                  Pre                 ) \
 181                                                                                                                          \
 182   /* It's NULL in non-1.4 JDKs. */                                                                                       \
 183   do_klass(StackTraceElement_klass,                     java_lang_StackTraceElement,               Opt                 ) \
 184   /* Universe::is_gte_jdk14x_version() is not set up by this point. */                                                   \
 185   /* It's okay if this turns out to be NULL in non-1.4 JDKs. */                                                          \
 186   do_klass(nio_Buffer_klass,                            java_nio_Buffer,                           Opt                 ) \
 187                                                                                                                          \
 188   /* Preload boxing klasses */                                                                                           \
 189   do_klass(Boolean_klass,                               java_lang_Boolean,                         Pre                 ) \
 190   do_klass(Character_klass,                             java_lang_Character,                       Pre                 ) \
 191   do_klass(Float_klass,                                 java_lang_Float,                           Pre                 ) \
 192   do_klass(Double_klass,                                java_lang_Double,                          Pre                 ) \
 193   do_klass(Byte_klass,                                  java_lang_Byte,                            Pre                 ) \
 194   do_klass(Short_klass,                                 java_lang_Short,                           Pre                 ) \
 195   do_klass(Integer_klass,                               java_lang_Integer,                         Pre                 ) \
 196   do_klass(Long_klass,                                  java_lang_Long,                            Pre                 ) \
 197   /*end*/
 198 
 199 


 324   static void classes_do(void f(Klass*));
 325   // Added for initialize_itable_for_klass to handle exceptions
 326   static void classes_do(void f(Klass*, TRAPS), TRAPS);
 327   //   All classes, and their class loaders
 328   static void classes_do(void f(Klass*, ClassLoaderData*));
 329 
 330   static void placeholders_do(void f(Symbol*));
 331 
 332   // Iterate over all methods in all klasses in dictionary
 333   static void methods_do(void f(Method*));
 334 
 335   // Garbage collection support
 336 
 337   // This method applies "blk->do_oop" to all the pointers to "system"
 338   // classes and loaders.
 339   static void always_strong_oops_do(OopClosure* blk);
 340   static void always_strong_classes_do(KlassClosure* closure);
 341 
 342   // Unload (that is, break root links to) all unmarked classes and
 343   // loaders.  Returns "true" iff something was unloaded.
 344   static bool do_unloading(BoolObjectClosure* is_alive, bool clean_alive = true);
 345 
 346   // Used by DumpSharedSpaces only to remove classes that failed verification
 347   static void remove_classes_in_error_state();
 348 
 349   static int calculate_systemdictionary_size(int loadedclasses);
 350 
 351   // Applies "f->do_oop" to all root oops in the system dictionary.
 352   static void oops_do(OopClosure* f);
 353   static void roots_oops_do(OopClosure* strong, OopClosure* weak);
 354 
 355   // System loader lock
 356   static oop system_loader_lock()           { return _system_loader_lock_obj; }
 357 
 358 protected:
 359   // Extended Redefine classes support (tbi)
 360   static void preloaded_classes_do(KlassClosure* f);
 361   static void lazily_loaded_classes_do(KlassClosure* f);
 362 public:
 363   // Sharing support.
 364   static void reorder_dictionary();


< prev index next >