Index: runtime/vm/object.cc |
=================================================================== |
--- runtime/vm/object.cc (revision 41609) |
+++ runtime/vm/object.cc (working copy) |
@@ -44,6 +44,7 @@ |
#include "vm/tags.h" |
#include "vm/timer.h" |
#include "vm/unicode.h" |
+#include "vm/verified_memory.h" |
#include "vm/weak_code.h" |
namespace dart { |
@@ -1698,6 +1699,7 @@ |
tags = RawObject::ClassIdTag::update(class_id, tags); |
tags = RawObject::SizeTag::update(size, tags); |
reinterpret_cast<RawObject*>(address)->tags_ = tags; |
+ VerifiedMemory::Accept(address, size); |
} |
@@ -1807,6 +1809,7 @@ |
memmove(reinterpret_cast<uint8_t*>(clone_addr + kHeaderSizeInBytes), |
reinterpret_cast<uint8_t*>(orig_addr + kHeaderSizeInBytes), |
size - kHeaderSizeInBytes); |
+ VerifiedMemory::Accept(clone_addr, size); |
// Add clone to store buffer, if needed. |
if (!raw_clone->IsOldObject()) { |
// No need to remember an object in new space. |
@@ -12164,6 +12167,7 @@ |
MemoryRegion region(reinterpret_cast<void*>(instrs.EntryPoint()), |
instrs.size()); |
assembler->FinalizeInstructions(region); |
+ VerifiedMemory::Accept(region.start(), region.size()); |
CPU::FlushICache(instrs.EntryPoint(), instrs.size()); |
code.set_compile_timestamp(OS::GetCurrentTimeMicros()); |
@@ -18804,6 +18808,8 @@ |
space)); |
NoGCScope no_gc; |
raw->StoreSmi(&(raw->ptr()->length_), Smi::New(len)); |
+ VerifiedMemory::Accept(reinterpret_cast<uword>(raw->ptr()), |
+ Array::InstanceSize(len)); |
return raw; |
} |
} |