Index: runtime/vm/code_generator.cc |
diff --git a/runtime/vm/code_generator.cc b/runtime/vm/code_generator.cc |
index 0ab08196e3c6d85af24574f3d2e2be5d1cd50ea1..f9879f655aa72190d00519bd349f88bd3748170e 100644 |
--- a/runtime/vm/code_generator.cc |
+++ b/runtime/vm/code_generator.cc |
@@ -1899,4 +1899,20 @@ DEFINE_LEAF_RUNTIME_ENTRY(intptr_t, |
} |
END_LEAF_RUNTIME_ENTRY |
+ |
+DEFINE_LEAF_RUNTIME_ENTRY(void, |
+ HeapTraceStore, |
+ RawObject* object, |
+ uword field_addr, |
+ RawObject* value) { |
+ if (!(object->IsHeapObject() && value->IsHeapObject())) { |
+ return; |
+ } |
+ HeapTrace* heap_trace = Isolate::Current()->heap()->trace(); |
+ heap_trace->TraceStoreIntoObject(RawObject::ToAddr(object), |
+ field_addr, |
+ RawObject::ToAddr(value)); |
+} |
+END_LEAF_RUNTIME_ENTRY |
+ |
} // namespace dart |