diff options
Diffstat (limited to 'runtime/gc/collector/mark_sweep.cc')
-rw-r--r-- | runtime/gc/collector/mark_sweep.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/runtime/gc/collector/mark_sweep.cc b/runtime/gc/collector/mark_sweep.cc index 944ef8d..bb41b57 100644 --- a/runtime/gc/collector/mark_sweep.cc +++ b/runtime/gc/collector/mark_sweep.cc @@ -129,7 +129,10 @@ void MarkSweep::InitializePhase() { ReaderMutexLock mu(Thread::Current(), *Locks::heap_bitmap_lock_); mark_bitmap_ = heap_->GetMarkBitmap(); } - + if (!clear_soft_references_) { + // Always clear soft references if a non-sticky collection. + clear_soft_references_ = GetGcType() != collector::kGcTypeSticky; + } // Do any pre GC verification. timings_.NewSplit("PreGcVerification"); heap_->PreGcVerification(this); |