355 |
355 |
356 static void methods_do(void f(Method*)); |
356 static void methods_do(void f(Method*)); |
357 |
357 |
358 // Garbage collection support |
358 // Garbage collection support |
359 |
359 |
360 // This method applies "blk->do_oop" to all the pointers to "system" |
|
361 // classes and loaders. |
|
362 static void always_strong_oops_do(OopClosure* blk); |
|
363 |
|
364 // Unload (that is, break root links to) all unmarked classes and |
360 // Unload (that is, break root links to) all unmarked classes and |
365 // loaders. Returns "true" iff something was unloaded. |
361 // loaders. Returns "true" iff something was unloaded. |
366 static bool do_unloading(BoolObjectClosure* is_alive, |
362 static bool do_unloading(GCTimer* gc_timer, |
367 GCTimer* gc_timer, |
|
368 bool do_cleaning = true); |
363 bool do_cleaning = true); |
369 |
364 |
370 // Used by DumpSharedSpaces only to remove classes that failed verification |
365 // Used by DumpSharedSpaces only to remove classes that failed verification |
371 static void remove_classes_in_error_state(); |
366 static void remove_classes_in_error_state(); |
372 |
367 |
373 static int calculate_systemdictionary_size(int loadedclasses); |
368 static int calculate_systemdictionary_size(int loadedclasses); |
374 |
369 |
375 // Applies "f->do_oop" to all root oops in the system dictionary. |
370 // Applies "f->do_oop" to all root oops in the system dictionary. |
376 static void oops_do(OopClosure* f); |
371 static void oops_do(OopClosure* f); |
377 static void roots_oops_do(OopClosure* strong, OopClosure* weak); |
|
378 |
372 |
379 // System loader lock |
373 // System loader lock |
380 static oop system_loader_lock() { return _system_loader_lock_obj; } |
374 static oop system_loader_lock() { return _system_loader_lock_obj; } |
381 |
375 |
382 public: |
376 public: |