src/hotspot/share/gc/shenandoah/shenandoahStringDedup.cpp
changeset 54338 7a34a3270270
parent 53383 5dc89efc08f0
child 54524 33fda525ad41
equal deleted inserted replaced
54337:5a9d780eb9dd 54338:7a34a3270270
    69   assert(is_enabled(), "String deduplication not enabled");
    69   assert(is_enabled(), "String deduplication not enabled");
    70   StringDedupStat dummy; // Statistics from this path is never used
    70   StringDedupStat dummy; // Statistics from this path is never used
    71   StringDedupTable::deduplicate(java_string, &dummy);
    71   StringDedupTable::deduplicate(java_string, &dummy);
    72 }
    72 }
    73 
    73 
    74 void ShenandoahStringDedup::parallel_oops_do(OopClosure* cl, uint worker_id) {
    74 void ShenandoahStringDedup::parallel_oops_do(BoolObjectClosure* is_alive, OopClosure* cl, uint worker_id) {
    75   assert(SafepointSynchronize::is_at_safepoint(), "Must be at a safepoint");
    75   assert(SafepointSynchronize::is_at_safepoint(), "Must be at a safepoint");
    76   assert(is_enabled(), "String deduplication not enabled");
    76   assert(is_enabled(), "String deduplication not enabled");
    77 
    77 
    78   ShenandoahWorkerTimings* worker_times = ShenandoahHeap::heap()->phase_timings()->worker_times();
    78   ShenandoahWorkerTimings* worker_times = ShenandoahHeap::heap()->phase_timings()->worker_times();
    79 
    79 
    80   StringDedupUnlinkOrOopsDoClosure sd_cl(NULL, cl);
    80   StringDedupUnlinkOrOopsDoClosure sd_cl(is_alive, cl);
    81 
    81 
    82   {
    82   {
    83     ShenandoahWorkerTimingsTracker x(worker_times, ShenandoahPhaseTimings::StringDedupQueueRoots, worker_id);
    83     ShenandoahWorkerTimingsTracker x(worker_times, ShenandoahPhaseTimings::StringDedupQueueRoots, worker_id);
    84     StringDedupQueue::unlink_or_oops_do(&sd_cl);
    84     StringDedupQueue::unlink_or_oops_do(&sd_cl);
    85   }
    85   }