57 ParCompactionManager* cm = |
57 ParCompactionManager* cm = |
58 ParCompactionManager::gc_thread_compaction_manager(which); |
58 ParCompactionManager::gc_thread_compaction_manager(which); |
59 |
59 |
60 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); |
60 PSParallelCompact::MarkAndPushClosure mark_and_push_closure(cm); |
61 CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true); |
61 CLDToOopClosure mark_and_push_from_clds(&mark_and_push_closure, true); |
62 CodeBlobToOopClosure mark_and_push_in_blobs(&mark_and_push_closure, /*do_marking=*/ true); |
62 MarkingCodeBlobClosure mark_and_push_in_blobs(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations); |
63 |
63 |
64 if (_java_thread != NULL) |
64 if (_java_thread != NULL) |
65 _java_thread->oops_do( |
65 _java_thread->oops_do( |
66 &mark_and_push_closure, |
66 &mark_and_push_closure, |
67 &mark_and_push_from_clds, |
67 &mark_and_push_from_clds, |
98 break; |
98 break; |
99 |
99 |
100 case threads: |
100 case threads: |
101 { |
101 { |
102 ResourceMark rm; |
102 ResourceMark rm; |
103 CodeBlobToOopClosure each_active_code_blob(&mark_and_push_closure, /*do_marking=*/ true); |
103 MarkingCodeBlobClosure each_active_code_blob(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations); |
104 CLDToOopClosure mark_and_push_from_cld(&mark_and_push_closure); |
104 CLDToOopClosure mark_and_push_from_cld(&mark_and_push_closure); |
105 Threads::oops_do(&mark_and_push_closure, &mark_and_push_from_cld, &each_active_code_blob); |
105 Threads::oops_do(&mark_and_push_closure, &mark_and_push_from_cld, &each_active_code_blob); |
106 } |
106 } |
107 break; |
107 break; |
108 |
108 |