< 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 >