Index: runtime/vm/code_generator.cc |
diff --git a/runtime/vm/code_generator.cc b/runtime/vm/code_generator.cc |
index 548e76b39eabfef2fda71a69f8723ea299d1b000..056d4a64fb293e0d2b73e6ad70f8f4c18ada62d8 100644 |
--- a/runtime/vm/code_generator.cc |
+++ b/runtime/vm/code_generator.cc |
@@ -1902,4 +1902,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())) { |
siva
2012/12/05 16:06:40
I am a little confused by this check. Is it here t
cshapiro
2012/12/08 03:23:08
This check ensures that both the source and destin
|
+ 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 |