| Index: runtime/vm/pages.cc
|
| diff --git a/runtime/vm/pages.cc b/runtime/vm/pages.cc
|
| index 5d5df0e2d559398f7494b34059206646c3399233..223026feb64ae5b8bf2676dbd9d2e7ad52827c4f 100644
|
| --- a/runtime/vm/pages.cc
|
| +++ b/runtime/vm/pages.cc
|
| @@ -50,7 +50,9 @@ HeapPage* HeapPage::Initialize(VirtualMemory* memory, PageType type) {
|
| ASSERT(memory != NULL);
|
| ASSERT(memory->size() > VirtualMemory::PageSize());
|
| bool is_executable = (type == kExecutable);
|
| - if (!memory->Commit(is_executable)) {
|
| + // Create the new page executable (RWX) only if we're not in W^X mode
|
| + bool create_executable = !FLAG_write_protect_code && is_executable;
|
| + if (!memory->Commit(create_executable)) {
|
| return NULL;
|
| }
|
| HeapPage* result = reinterpret_cast<HeapPage*>(memory->address());
|
|
|