| Index: src/spaces-inl.h
|
| diff --git a/src/spaces-inl.h b/src/spaces-inl.h
|
| index 37002e68801b2928558b3533adc72e484d29120f..be2ae2a57db248234ab9f92726beec0168a49709 100644
|
| --- a/src/spaces-inl.h
|
| +++ b/src/spaces-inl.h
|
| @@ -125,11 +125,43 @@ HeapObject* HeapObjectIterator::FromCurrentPage() {
|
| }
|
|
|
|
|
| +// -----------------------------------------------------------------------------
|
| +// MemoryAllocator
|
| +
|
| +#ifdef ENABLE_HEAP_PROTECTION
|
| +
|
| +void MemoryAllocator::Protect(Address start, size_t size) {
|
| + OS::Protect(start, size);
|
| +}
|
| +
|
| +
|
| +void MemoryAllocator::Unprotect(Address start,
|
| + size_t size,
|
| + Executability executable) {
|
| + OS::Unprotect(start, size, executable);
|
| +}
|
| +
|
| +
|
| +void MemoryAllocator::ProtectChunkFromPage(Page* page) {
|
| + int id = GetChunkId(page);
|
| + OS::Protect(chunks_[id].address(), chunks_[id].size());
|
| +}
|
| +
|
| +
|
| +void MemoryAllocator::UnprotectChunkFromPage(Page* page) {
|
| + int id = GetChunkId(page);
|
| + OS::Unprotect(chunks_[id].address(), chunks_[id].size(),
|
| + chunks_[id].owner()->executable() == EXECUTABLE);
|
| +}
|
| +
|
| +#endif
|
| +
|
| +
|
| // --------------------------------------------------------------------------
|
| // PagedSpace
|
| Page* Page::Initialize(Heap* heap,
|
| MemoryChunk* chunk,
|
| - VirtualMemory::Executability executability,
|
| + Executability executable,
|
| PagedSpace* owner) {
|
| Page* page = reinterpret_cast<Page*>(chunk);
|
| ASSERT(page->area_size() <= kNonCodeObjectAreaSize);
|
|
|