< prev index next >

src/hotspot/share/gc/parallel/pcTasks.cpp

8211446: Replace oop_pc_follow_contents with oop_iterate and closure

*** 33,42 **** --- 33,43 ---- #include "gc/parallel/psParallelCompact.inline.hpp" #include "gc/shared/collectedHeap.hpp" #include "gc/shared/gcTimer.hpp" #include "gc/shared/gcTraceTime.inline.hpp" #include "logging/log.hpp" + #include "memory/iterator.inline.hpp" #include "memory/resourceArea.hpp" #include "memory/universe.hpp" #include "oops/objArrayKlass.inline.hpp" #include "oops/oop.inline.hpp" #include "prims/jvmtiExport.hpp" ***************
*** 56,66 **** ResourceMark rm; ParCompactionManager* cm = ParCompactionManager::gc_thread_compaction_manager(which); ! ParCompactionManager::MarkAndPushClosure mark_and_push_closure(cm); MarkingCodeBlobClosure mark_and_push_in_blobs(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations); _thread->oops_do(&mark_and_push_closure, &mark_and_push_in_blobs); // Do the real work --- 57,67 ---- ResourceMark rm; ParCompactionManager* cm = ParCompactionManager::gc_thread_compaction_manager(which); ! PSMarkAndPushClosure mark_and_push_closure(cm); MarkingCodeBlobClosure mark_and_push_in_blobs(&mark_and_push_closure, !CodeBlobToOopClosure::FixRelocations); _thread->oops_do(&mark_and_push_closure, &mark_and_push_in_blobs); // Do the real work ***************
*** 71,81 **** void MarkFromRootsTask::do_it(GCTaskManager* manager, uint which) { assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc"); ParCompactionManager* cm = ParCompactionManager::gc_thread_compaction_manager(which); ! ParCompactionManager::MarkAndPushClosure mark_and_push_closure(cm); switch (_root_type) { case universe: Universe::oops_do(&mark_and_push_closure); break; --- 72,82 ---- void MarkFromRootsTask::do_it(GCTaskManager* manager, uint which) { assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc"); ParCompactionManager* cm = ParCompactionManager::gc_thread_compaction_manager(which); ! PSMarkAndPushClosure mark_and_push_closure(cm); switch (_root_type) { case universe: Universe::oops_do(&mark_and_push_closure); break; ***************
*** 137,147 **** { assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc"); ParCompactionManager* cm = ParCompactionManager::gc_thread_compaction_manager(which); ! ParCompactionManager::MarkAndPushClosure mark_and_push_closure(cm); ParCompactionManager::FollowStackClosure follow_stack_closure(cm); _rp_task.work(_work_id, *PSParallelCompact::is_alive_closure(), mark_and_push_closure, follow_stack_closure); } --- 138,148 ---- { assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc"); ParCompactionManager* cm = ParCompactionManager::gc_thread_compaction_manager(which); ! PSMarkAndPushClosure mark_and_push_closure(cm); ParCompactionManager::FollowStackClosure follow_stack_closure(cm); _rp_task.work(_work_id, *PSParallelCompact::is_alive_closure(), mark_and_push_closure, follow_stack_closure); } ***************
*** 180,196 **** void StealMarkingTask::do_it(GCTaskManager* manager, uint which) { assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc"); ParCompactionManager* cm = ParCompactionManager::gc_thread_compaction_manager(which); - ParCompactionManager::MarkAndPushClosure mark_and_push_closure(cm); oop obj = NULL; ObjArrayTask task; do { while (ParCompactionManager::steal_objarray(which, task)) { ! cm->follow_contents((objArrayOop)task.obj(), task.index()); cm->follow_marking_stacks(); } while (ParCompactionManager::steal(which, obj)) { cm->follow_contents(obj); cm->follow_marking_stacks(); --- 181,196 ---- void StealMarkingTask::do_it(GCTaskManager* manager, uint which) { assert(ParallelScavengeHeap::heap()->is_gc_active(), "called outside gc"); ParCompactionManager* cm = ParCompactionManager::gc_thread_compaction_manager(which); oop obj = NULL; ObjArrayTask task; do { while (ParCompactionManager::steal_objarray(which, task)) { ! cm->follow_array((objArrayOop)task.obj(), task.index()); cm->follow_marking_stacks(); } while (ParCompactionManager::steal(which, obj)) { cm->follow_contents(obj); cm->follow_marking_stacks();
< prev index next >