hotspot/src/share/vm/gc/g1/g1MarkSweep.cpp
changeset 37106 0856b64af754
parent 35065 b4ff0249c092
child 37140 b62549ead2cf
equal deleted inserted replaced
37096:42437cf54027 37106:0856b64af754
   218     }
   218     }
   219     return false;
   219     return false;
   220   }
   220   }
   221 };
   221 };
   222 
   222 
   223 class G1AlwaysTrueClosure: public BoolObjectClosure {
       
   224 public:
       
   225   bool do_object_b(oop p) { return true; }
       
   226 };
       
   227 static G1AlwaysTrueClosure always_true;
       
   228 
       
   229 void G1MarkSweep::mark_sweep_phase3() {
   223 void G1MarkSweep::mark_sweep_phase3() {
   230   G1CollectedHeap* g1h = G1CollectedHeap::heap();
   224   G1CollectedHeap* g1h = G1CollectedHeap::heap();
   231 
   225 
   232   // Adjust the pointers to reflect the new locations
   226   // Adjust the pointers to reflect the new locations
   233   GCTraceTime(Trace, gc) tm("Phase 3: Adjust pointers", gc_timer());
   227   GCTraceTime(Trace, gc) tm("Phase 3: Adjust pointers", gc_timer());
   246   assert(GenMarkSweep::ref_processor() == g1h->ref_processor_stw(), "Sanity");
   240   assert(GenMarkSweep::ref_processor() == g1h->ref_processor_stw(), "Sanity");
   247   g1h->ref_processor_stw()->weak_oops_do(&GenMarkSweep::adjust_pointer_closure);
   241   g1h->ref_processor_stw()->weak_oops_do(&GenMarkSweep::adjust_pointer_closure);
   248 
   242 
   249   // Now adjust pointers in remaining weak roots.  (All of which should
   243   // Now adjust pointers in remaining weak roots.  (All of which should
   250   // have been cleared if they pointed to non-surviving objects.)
   244   // have been cleared if they pointed to non-surviving objects.)
   251   JNIHandles::weak_oops_do(&always_true, &GenMarkSweep::adjust_pointer_closure);
   245   JNIHandles::weak_oops_do(&GenMarkSweep::adjust_pointer_closure);
   252 
   246 
   253   if (G1StringDedup::is_enabled()) {
   247   if (G1StringDedup::is_enabled()) {
   254     G1StringDedup::oops_do(&GenMarkSweep::adjust_pointer_closure);
   248     G1StringDedup::oops_do(&GenMarkSweep::adjust_pointer_closure);
   255   }
   249   }
   256 
   250