| Index: runtime/vm/scavenger.cc
 | 
| ===================================================================
 | 
| --- runtime/vm/scavenger.cc	(revision 41609)
 | 
| +++ runtime/vm/scavenger.cc	(working copy)
 | 
| @@ -16,6 +16,7 @@
 | 
|  #include "vm/object_id_ring.h"
 | 
|  #include "vm/stack_frame.h"
 | 
|  #include "vm/store_buffer.h"
 | 
| +#include "vm/verified_memory.h"
 | 
|  #include "vm/verifier.h"
 | 
|  #include "vm/visitor.h"
 | 
|  #include "vm/weak_table.h"
 | 
| @@ -227,6 +228,7 @@
 | 
|        memmove(reinterpret_cast<void*>(new_addr),
 | 
|                reinterpret_cast<void*>(raw_addr),
 | 
|                size);
 | 
| +      VerifiedMemory::Accept(new_addr, size);
 | 
|        // Remember forwarding address.
 | 
|        ForwardTo(raw_addr, new_addr);
 | 
|      }
 | 
| @@ -235,6 +237,7 @@
 | 
|      *p = new_obj;
 | 
|      // Update the store buffer as needed.
 | 
|      if (visiting_old_object_ != NULL) {
 | 
| +      VerifiedMemory::Accept(reinterpret_cast<uword>(p), sizeof(*p));
 | 
|        UpdateStoreBuffer(p, new_obj);
 | 
|      }
 | 
|    }
 | 
| @@ -356,7 +359,7 @@
 | 
|      return new SemiSpace(NULL);
 | 
|    } else {
 | 
|      intptr_t size_in_bytes = size_in_words << kWordSizeLog2;
 | 
| -    VirtualMemory* reserved = VirtualMemory::Reserve(size_in_bytes);
 | 
| +    VirtualMemory* reserved = VerifiedMemory::Reserve(size_in_bytes);
 | 
|      if ((reserved == NULL) || !reserved->Commit(false)) {  // Not executable.
 | 
|        // TODO(koda): If cache_ is not empty, we could try to delete it.
 | 
|        delete reserved;
 | 
| @@ -486,7 +489,7 @@
 | 
|      // objects candidates for promotion next time.
 | 
|      survivor_end_ = end_;
 | 
|    }
 | 
| -
 | 
| +  VerifiedMemory::Accept(to_->start(), to_->end() - to_->start());
 | 
|  #if defined(DEBUG)
 | 
|    // We can only safely verify the store buffers from old space if there is no
 | 
|    // concurrent old space task. At the same time we prevent new tasks from
 | 
| 
 |