313 static void placeholders_do(void f(Symbol*));
314
315 // Iterate over all methods in all klasses in dictionary
316 static void methods_do(void f(Method*));
317
318 // Garbage collection support
319
320 // This method applies "blk->do_oop" to all the pointers to "system"
321 // classes and loaders.
322 static void always_strong_oops_do(OopClosure* blk);
323 static void always_strong_classes_do(KlassClosure* closure);
324
325 // Unload (that is, break root links to) all unmarked classes and
326 // loaders. Returns "true" iff something was unloaded.
327 static bool do_unloading(BoolObjectClosure* is_alive);
328
329 static int calculate_systemdictionary_size(int loadedclasses);
330
331 // Applies "f->do_oop" to all root oops in the system dictionary.
332 static void oops_do(OopClosure* f);
333
334 // System loader lock
335 static oop system_loader_lock() { return _system_loader_lock_obj; }
336
337 private:
338 // Extended Redefine classes support (tbi)
339 static void preloaded_classes_do(KlassClosure* f);
340 static void lazily_loaded_classes_do(KlassClosure* f);
341 public:
342 // Sharing support.
343 static void reorder_dictionary();
344 static void copy_buckets(char** top, char* end);
345 static void copy_table(char** top, char* end);
346 static void reverse();
347 static void set_shared_dictionary(HashtableBucket<mtClass>* t, int length,
348 int number_of_entries);
349 // Printing
350 static void print() PRODUCT_RETURN;
351 static void print_class_statistics() PRODUCT_RETURN;
352 static void print_method_statistics() PRODUCT_RETURN;
|
313 static void placeholders_do(void f(Symbol*));
314
315 // Iterate over all methods in all klasses in dictionary
316 static void methods_do(void f(Method*));
317
318 // Garbage collection support
319
320 // This method applies "blk->do_oop" to all the pointers to "system"
321 // classes and loaders.
322 static void always_strong_oops_do(OopClosure* blk);
323 static void always_strong_classes_do(KlassClosure* closure);
324
325 // Unload (that is, break root links to) all unmarked classes and
326 // loaders. Returns "true" iff something was unloaded.
327 static bool do_unloading(BoolObjectClosure* is_alive);
328
329 static int calculate_systemdictionary_size(int loadedclasses);
330
331 // Applies "f->do_oop" to all root oops in the system dictionary.
332 static void oops_do(OopClosure* f);
333 static void roots_oops_do(OopClosure* strong, OopClosure* weak);
334
335 // System loader lock
336 static oop system_loader_lock() { return _system_loader_lock_obj; }
337
338 private:
339 // Extended Redefine classes support (tbi)
340 static void preloaded_classes_do(KlassClosure* f);
341 static void lazily_loaded_classes_do(KlassClosure* f);
342 public:
343 // Sharing support.
344 static void reorder_dictionary();
345 static void copy_buckets(char** top, char* end);
346 static void copy_table(char** top, char* end);
347 static void reverse();
348 static void set_shared_dictionary(HashtableBucket<mtClass>* t, int length,
349 int number_of_entries);
350 // Printing
351 static void print() PRODUCT_RETURN;
352 static void print_class_statistics() PRODUCT_RETURN;
353 static void print_method_statistics() PRODUCT_RETURN;
|