summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/gc/collector/concurrent_copying.cc5
-rw-r--r--runtime/gc/verification.cc2
2 files changed, 5 insertions, 2 deletions
diff --git a/runtime/gc/collector/concurrent_copying.cc b/runtime/gc/collector/concurrent_copying.cc
index 596b4be2c6..849d42a9ed 100644
--- a/runtime/gc/collector/concurrent_copying.cc
+++ b/runtime/gc/collector/concurrent_copying.cc
@@ -1959,7 +1959,10 @@ inline void ConcurrentCopying::Process(mirror::Object* obj, MemberOffset offset)
DCHECK_EQ(Thread::Current(), thread_running_gc_);
mirror::Object* ref = obj->GetFieldObject<
mirror::Object, kVerifyNone, kWithoutReadBarrier, false>(offset);
- mirror::Object* to_ref = Mark</*kGrayImmuneObject*/false, /*kFromGCThread*/true>(ref);
+ mirror::Object* to_ref = Mark</*kGrayImmuneObject*/false, /*kFromGCThread*/true>(
+ ref,
+ /*holder*/ obj,
+ offset);
if (to_ref == ref) {
return;
}
diff --git a/runtime/gc/verification.cc b/runtime/gc/verification.cc
index 7b31c8a259..c14f250528 100644
--- a/runtime/gc/verification.cc
+++ b/runtime/gc/verification.cc
@@ -86,8 +86,8 @@ void Verification::LogHeapCorruption(ObjPtr<mirror::Object> holder,
std::ostringstream oss;
oss << "GC tried to mark invalid reference " << ref << std::endl;
oss << DumpObjectInfo(ref, "ref") << "\n";
+ oss << DumpObjectInfo(holder.Ptr(), "holder");
if (holder != nullptr) {
- oss << DumpObjectInfo(holder.Ptr(), "holder");
mirror::Class* holder_klass = holder->GetClass<kVerifyNone, kWithoutReadBarrier>();
if (IsValidClass(holder_klass)) {
oss << "field_offset=" << offset.Uint32Value();