< prev index next >
src/share/vm/gc/g1/g1CollectedHeap.cpp
Print this page
rev 8463 : Support for -Xnoclassgc
*** 4371,4381 ****
if (_g1h->g1_policy()->during_initial_mark_pause()) {
// We also need to mark copied objects.
strong_root_cl = &scan_mark_root_cl;
strong_cld_cl = &scan_mark_cld_cl;
! if (ClassUnloadingWithConcurrentMark) {
weak_root_cl = &scan_mark_weak_root_cl;
weak_cld_cl = &scan_mark_weak_cld_cl;
trace_metadata = true;
} else {
weak_root_cl = &scan_mark_root_cl;
--- 4371,4381 ----
if (_g1h->g1_policy()->during_initial_mark_pause()) {
// We also need to mark copied objects.
strong_root_cl = &scan_mark_root_cl;
strong_cld_cl = &scan_mark_cld_cl;
! if (ClassUnloading && ClassUnloadingWithConcurrentMark) {
weak_root_cl = &scan_mark_weak_root_cl;
weak_cld_cl = &scan_mark_weak_cld_cl;
trace_metadata = true;
} else {
weak_root_cl = &scan_mark_root_cl;
*** 4704,4720 ****
--- 4704,4722 ----
}
public:
void clean_klass(InstanceKlass* ik) {
+ if (ClassUnloading) {
ik->clean_implementors_list(_is_alive);
ik->clean_method_data(_is_alive);
// G1 specific cleanup work that has
// been moved here to be done in parallel.
ik->clean_dependent_nmethods();
}
+ }
void work() {
ResourceMark rm;
// One worker will clean the subklass/sibling klass tree.
< prev index next >