Index: runtime/vm/heap.h |
=================================================================== |
--- runtime/vm/heap.h (revision 9969) |
+++ runtime/vm/heap.h (working copy) |
@@ -45,6 +45,7 @@ |
~Heap(); |
uword Allocate(intptr_t size, Space space) { |
+ ASSERT(!read_only_); |
switch (space) { |
case kNew: |
// Do not attempt to allocate very large objects in new space. |
@@ -63,6 +64,7 @@ |
} |
uword TryAllocate(intptr_t size, Space space) { |
+ ASSERT(!read_only_); |
switch (space) { |
case kNew: |
return new_space_->TryAllocate(size); |
@@ -117,6 +119,9 @@ |
// called before any user code is executed. |
void EnableGrowthControl(); |
+ // Protect access to the heap. |
+ void WriteProtect(bool read_only); |
+ |
// Accessors for inlined allocation in generated code. |
uword TopAddress(); |
uword EndAddress(); |
@@ -151,6 +156,9 @@ |
PageSpace* old_space_; |
PageSpace* code_space_; |
+ // This heap is in read-only mode: No allocation is allowed. |
+ bool read_only_; |
+ |
friend class GCTestHelper; |
DISALLOW_COPY_AND_ASSIGN(Heap); |
}; |