Since the instrumentation is marked from the declaring class we need
to mark the card so that mod-union tables and card rescanning know
about the update.
This fixes some moving GC crashes on eng builds.
Bug:
24133607
(cherry picked from commit
b5bba5966045258fd8b755fb65e381cd7fb9c311)
Change-Id: Ibe8430e32e161d33ce0a6782e8dc252e5c86c8da
DCHECK(this_object != nullptr);
ProfilingInfo* info = caller->GetProfilingInfo(sizeof(void*));
if (info != nullptr) {
+ // Since the instrumentation is marked from the declaring class we need to mark the card so
+ // that mod-union tables and card rescanning know about the update.
+ Runtime::Current()->GetHeap()->WriteBarrierEveryFieldOf(caller->GetDeclaringClass());
info->AddInvokeInfo(thread, dex_pc, this_object->GetClass());
}
}