76 class PlaceholderTable; |
76 class PlaceholderTable; |
77 class LoaderConstraintTable; |
77 class LoaderConstraintTable; |
78 template <MEMFLAGS F> class HashtableBucket; |
78 template <MEMFLAGS F> class HashtableBucket; |
79 class ResolutionErrorTable; |
79 class ResolutionErrorTable; |
80 class SymbolPropertyTable; |
80 class SymbolPropertyTable; |
|
81 class GCTimer; |
81 |
82 |
82 // Certain classes are preloaded, such as java.lang.Object and java.lang.String. |
83 // Certain classes are preloaded, such as java.lang.Object and java.lang.String. |
83 // They are all "well-known", in the sense that no class loader is allowed |
84 // They are all "well-known", in the sense that no class loader is allowed |
84 // to provide a different definition. |
85 // to provide a different definition. |
85 // |
86 // |
153 /* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \ |
154 /* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \ |
154 do_klass(DirectMethodHandle_klass, java_lang_invoke_DirectMethodHandle, Opt ) \ |
155 do_klass(DirectMethodHandle_klass, java_lang_invoke_DirectMethodHandle, Opt ) \ |
155 do_klass(MethodHandle_klass, java_lang_invoke_MethodHandle, Pre ) \ |
156 do_klass(MethodHandle_klass, java_lang_invoke_MethodHandle, Pre ) \ |
156 do_klass(VarHandle_klass, java_lang_invoke_VarHandle, Pre ) \ |
157 do_klass(VarHandle_klass, java_lang_invoke_VarHandle, Pre ) \ |
157 do_klass(MemberName_klass, java_lang_invoke_MemberName, Pre ) \ |
158 do_klass(MemberName_klass, java_lang_invoke_MemberName, Pre ) \ |
|
159 do_klass(ResolvedMethodName_klass, java_lang_invoke_ResolvedMethodName, Pre ) \ |
158 do_klass(MethodHandleNatives_klass, java_lang_invoke_MethodHandleNatives, Pre ) \ |
160 do_klass(MethodHandleNatives_klass, java_lang_invoke_MethodHandleNatives, Pre ) \ |
159 do_klass(LambdaForm_klass, java_lang_invoke_LambdaForm, Opt ) \ |
161 do_klass(LambdaForm_klass, java_lang_invoke_LambdaForm, Opt ) \ |
160 do_klass(MethodType_klass, java_lang_invoke_MethodType, Pre ) \ |
162 do_klass(MethodType_klass, java_lang_invoke_MethodType, Pre ) \ |
161 do_klass(BootstrapMethodError_klass, java_lang_BootstrapMethodError, Pre ) \ |
163 do_klass(BootstrapMethodError_klass, java_lang_BootstrapMethodError, Pre ) \ |
162 do_klass(CallSite_klass, java_lang_invoke_CallSite, Pre ) \ |
164 do_klass(CallSite_klass, java_lang_invoke_CallSite, Pre ) \ |
364 static void always_strong_oops_do(OopClosure* blk); |
366 static void always_strong_oops_do(OopClosure* blk); |
365 |
367 |
366 // Unload (that is, break root links to) all unmarked classes and |
368 // Unload (that is, break root links to) all unmarked classes and |
367 // loaders. Returns "true" iff something was unloaded. |
369 // loaders. Returns "true" iff something was unloaded. |
368 static bool do_unloading(BoolObjectClosure* is_alive, |
370 static bool do_unloading(BoolObjectClosure* is_alive, |
369 bool clean_previous_versions = true); |
371 GCTimer* gc_timer, |
|
372 bool do_cleaning = true); |
370 |
373 |
371 // Used by DumpSharedSpaces only to remove classes that failed verification |
374 // Used by DumpSharedSpaces only to remove classes that failed verification |
372 static void remove_classes_in_error_state(); |
375 static void remove_classes_in_error_state(); |
373 |
376 |
374 static int calculate_systemdictionary_size(int loadedclasses); |
377 static int calculate_systemdictionary_size(int loadedclasses); |