359 static void methods_do(void f(Method*)); 360 361 // Garbage collection support 362 363 // Unload (that is, break root links to) all unmarked classes and 364 // loaders. Returns "true" iff something was unloaded. 365 static bool do_unloading(GCTimer* gc_timer, 366 bool do_cleaning = true); 367 368 // Used by DumpSharedSpaces only to remove classes that failed verification 369 static void remove_classes_in_error_state(); 370 371 static int calculate_systemdictionary_size(int loadedclasses); 372 373 // Applies "f->do_oop" to all root oops in the system dictionary. 374 static void oops_do(OopClosure* f); 375 376 // System loader lock 377 static oop system_loader_lock() { return _system_loader_lock_obj; } 378 379 public: 380 // Sharing support. 381 static void reorder_dictionary_for_sharing() NOT_CDS_RETURN; 382 static void combine_shared_dictionaries(); 383 static size_t count_bytes_for_buckets(); 384 static size_t count_bytes_for_table(); 385 static void copy_buckets(char* top, char* end); 386 static void copy_table(char* top, char* end); 387 static void set_shared_dictionary(HashtableBucket<mtClass>* t, int length, 388 int number_of_entries); 389 // Printing 390 static void print() { return print_on(tty); } 391 static void print_on(outputStream* st); 392 static void print_shared(outputStream* st); 393 static void dump(outputStream* st, bool verbose); 394 395 // Monotonically increasing counter which grows as classes are 396 // loaded or modifications such as hot-swapping or setting/removing 397 // of breakpoints are performed 398 static inline int number_of_modifications() { assert_locked_or_safepoint(Compile_lock); return _number_of_modifications; } | 359 static void methods_do(void f(Method*)); 360 361 // Garbage collection support 362 363 // Unload (that is, break root links to) all unmarked classes and 364 // loaders. Returns "true" iff something was unloaded. 365 static bool do_unloading(GCTimer* gc_timer, 366 bool do_cleaning = true); 367 368 // Used by DumpSharedSpaces only to remove classes that failed verification 369 static void remove_classes_in_error_state(); 370 371 static int calculate_systemdictionary_size(int loadedclasses); 372 373 // Applies "f->do_oop" to all root oops in the system dictionary. 374 static void oops_do(OopClosure* f); 375 376 // System loader lock 377 static oop system_loader_lock() { return _system_loader_lock_obj; } 378 379 // Protection Domain Table 380 static ProtectionDomainCacheTable* pd_cache_table() { return _pd_cache_table; } 381 382 public: 383 // Sharing support. 384 static void reorder_dictionary_for_sharing() NOT_CDS_RETURN; 385 static void combine_shared_dictionaries(); 386 static size_t count_bytes_for_buckets(); 387 static size_t count_bytes_for_table(); 388 static void copy_buckets(char* top, char* end); 389 static void copy_table(char* top, char* end); 390 static void set_shared_dictionary(HashtableBucket<mtClass>* t, int length, 391 int number_of_entries); 392 // Printing 393 static void print() { return print_on(tty); } 394 static void print_on(outputStream* st); 395 static void print_shared(outputStream* st); 396 static void dump(outputStream* st, bool verbose); 397 398 // Monotonically increasing counter which grows as classes are 399 // loaded or modifications such as hot-swapping or setting/removing 400 // of breakpoints are performed 401 static inline int number_of_modifications() { assert_locked_or_safepoint(Compile_lock); return _number_of_modifications; } |