345 static Klass* find_constrained_instance_or_array_klass(Symbol* class_name, |
345 static Klass* find_constrained_instance_or_array_klass(Symbol* class_name, |
346 Handle class_loader, |
346 Handle class_loader, |
347 TRAPS); |
347 TRAPS); |
348 |
348 |
349 // Iterate over all klasses in dictionary |
349 // Iterate over all klasses in dictionary |
350 // Just the classes from defining class loaders |
350 // Just the classes from defining class loaders |
351 static void classes_do(void f(Klass*)); |
351 static void classes_do(void f(Klass*)); |
352 // Added for initialize_itable_for_klass to handle exceptions |
352 // Added for initialize_itable_for_klass to handle exceptions |
353 static void classes_do(void f(Klass*, TRAPS), TRAPS); |
353 static void classes_do(void f(Klass*, TRAPS), TRAPS); |
354 // All classes, and their class loaders |
354 // All classes, and their class loaders, including initiating class loaders |
355 static void classes_do(void f(Klass*, ClassLoaderData*)); |
355 static void classes_do(void f(Klass*, ClassLoaderData*)); |
356 |
356 |
357 static void placeholders_do(void f(Symbol*)); |
357 // Iterate over all methods in all klasses |
358 |
|
359 // Iterate over all methods in all klasses in dictionary |
|
360 static void methods_do(void f(Method*)); |
358 static void methods_do(void f(Method*)); |
361 |
359 |
362 // Garbage collection support |
360 // Garbage collection support |
363 |
361 |
364 // This method applies "blk->do_oop" to all the pointers to "system" |
362 // This method applies "blk->do_oop" to all the pointers to "system" |
365 // classes and loaders. |
363 // classes and loaders. |
366 static void always_strong_oops_do(OopClosure* blk); |
364 static void always_strong_oops_do(OopClosure* blk); |
367 static void always_strong_classes_do(KlassClosure* closure); |
|
368 |
365 |
369 // Unload (that is, break root links to) all unmarked classes and |
366 // Unload (that is, break root links to) all unmarked classes and |
370 // loaders. Returns "true" iff something was unloaded. |
367 // loaders. Returns "true" iff something was unloaded. |
371 static bool do_unloading(BoolObjectClosure* is_alive, |
368 static bool do_unloading(BoolObjectClosure* is_alive, |
372 bool clean_previous_versions = true); |
369 bool clean_previous_versions = true); |
381 static void roots_oops_do(OopClosure* strong, OopClosure* weak); |
378 static void roots_oops_do(OopClosure* strong, OopClosure* weak); |
382 |
379 |
383 // System loader lock |
380 // System loader lock |
384 static oop system_loader_lock() { return _system_loader_lock_obj; } |
381 static oop system_loader_lock() { return _system_loader_lock_obj; } |
385 |
382 |
386 protected: |
|
387 // Extended Redefine classes support (tbi) |
|
388 static void preloaded_classes_do(KlassClosure* f); |
|
389 static void lazily_loaded_classes_do(KlassClosure* f); |
|
390 public: |
383 public: |
391 // Sharing support. |
384 // Sharing support. |
392 static void reorder_dictionary(); |
385 static void reorder_dictionary(); |
393 static void copy_buckets(char** top, char* end); |
386 static void copy_buckets(char** top, char* end); |
394 static void copy_table(char** top, char* end); |
387 static void copy_table(char** top, char* end); |