src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp	Thu Nov 22 14:37:34 2012
--- new/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp	Thu Nov 22 14:37:34 2012

*** 63,73 **** --- 63,74 ---- break; case threads: { ResourceMark rm; Threads::oops_do(&roots_closure, NULL); + CLDToOopClosure* cld_closure = NULL; // Not needed. All CLDs are already visited. + Threads::oops_do(&roots_closure, cld_closure, NULL); } break; case object_synchronizer: ObjectSynchronizer::oops_do(&roots_closure);
*** 118,134 **** --- 119,136 ---- void ThreadRootsTask::do_it(GCTaskManager* manager, uint which) { assert(Universe::heap()->is_gc_active(), "called outside gc"); PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which); PSScavengeRootsClosure roots_closure(pm); + CLDToOopClosure* roots_from_clds = NULL; // Not needed. All CLDs are already visited. CodeBlobToOopClosure roots_in_blobs(&roots_closure, /*do_marking=*/ true); if (_java_thread != NULL) ! _java_thread->oops_do(&roots_closure, roots_from_clds, &roots_in_blobs); if (_vm_thread != NULL) ! _vm_thread->oops_do(&roots_closure, roots_from_clds, &roots_in_blobs); // Do the real work pm->drain_stacks(false); }

src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File