summaryrefslogtreecommitdiffstats
path: root/runtime/gc/collector/semi_space.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/gc/collector/semi_space.cc')
-rw-r--r--runtime/gc/collector/semi_space.cc12
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);