diff options
| -rw-r--r-- | runtime/gc/accounting/remembered_set.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/runtime/gc/accounting/remembered_set.cc b/runtime/gc/accounting/remembered_set.cc index 251b50d93b..70704c13c8 100644 --- a/runtime/gc/accounting/remembered_set.cc +++ b/runtime/gc/accounting/remembered_set.cc @@ -95,7 +95,11 @@ class RememberedSetReferenceVisitor { void VisitRoot(mirror::CompressedReference<mirror::Object>* root) const SHARED_REQUIRES(Locks::mutator_lock_) { - DCHECK(!target_space_->HasAddress(root->AsMirrorPtr())); + if (target_space_->HasAddress(root->AsMirrorPtr())) { + *contains_reference_to_target_space_ = true; + root->Assign(collector_->MarkObject(root->AsMirrorPtr())); + DCHECK(!target_space_->HasAddress(root->AsMirrorPtr())); + } } private: |