diff options
Diffstat (limited to 'runtime/gc/collector/semi_space.cc')
-rw-r--r-- | runtime/gc/collector/semi_space.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/runtime/gc/collector/semi_space.cc b/runtime/gc/collector/semi_space.cc index 222bd63..1366858 100644 --- a/runtime/gc/collector/semi_space.cc +++ b/runtime/gc/collector/semi_space.cc @@ -561,11 +561,13 @@ mirror::Object* SemiSpace::MarkNonForwardedObject(mirror::Object* obj) { // references. saved_bytes_ += CopyAvoidingDirtyingPages(reinterpret_cast<void*>(forward_address), obj, object_size); - if (kUseBrooksPointer) { - obj->AssertSelfBrooksPointer(); - DCHECK_EQ(forward_address->GetBrooksPointer(), obj); - forward_address->SetBrooksPointer(forward_address); - forward_address->AssertSelfBrooksPointer(); + if (kUseBakerOrBrooksReadBarrier) { + obj->AssertReadBarrierPointer(); + if (kUseBrooksReadBarrier) { + DCHECK_EQ(forward_address->GetReadBarrierPointer(), obj); + forward_address->SetReadBarrierPointer(forward_address); + } + forward_address->AssertReadBarrierPointer(); } if (to_space_live_bitmap_ != nullptr) { to_space_live_bitmap_->Set(forward_address); |