| Index: src/heap/spaces.cc | 
| diff --git a/src/heap/spaces.cc b/src/heap/spaces.cc | 
| index af04b5229e99ba7fcb8ef0a0bbcc2828777b0e0e..5e78c6aef8408994484a4e555396cb5d75a80979 100644 | 
| --- a/src/heap/spaces.cc | 
| +++ b/src/heap/spaces.cc | 
| @@ -875,30 +875,28 @@ bool MemoryAllocator::CommitExecutableMemory(base::VirtualMemory* vm, | 
| Address start, size_t commit_size, | 
| size_t reserved_size) { | 
| // Commit page header (not executable). | 
| -  if (!vm->Commit(start, CodePageGuardStartOffset(), false)) { | 
| -    return false; | 
| -  } | 
| - | 
| -  // Create guard page after the header. | 
| -  if (!vm->Guard(start + CodePageGuardStartOffset())) { | 
| -    return false; | 
| -  } | 
| - | 
| -  // Commit page body (executable). | 
| -  if (!vm->Commit(start + CodePageAreaStartOffset(), | 
| -                  commit_size - CodePageGuardStartOffset(), true)) { | 
| -    return false; | 
| -  } | 
| - | 
| -  // Create guard page before the end. | 
| -  if (!vm->Guard(start + reserved_size - CodePageGuardSize())) { | 
| -    return false; | 
| +  Address header = start; | 
| +  size_t header_size = CodePageGuardStartOffset(); | 
| +  if (vm->Commit(header, header_size, false)) { | 
| +    // Create guard page after the header. | 
| +    if (vm->Guard(start + CodePageGuardStartOffset())) { | 
| +      // Commit page body (executable). | 
| +      Address body = start + CodePageAreaStartOffset(); | 
| +      size_t body_size = commit_size - CodePageGuardStartOffset(); | 
| +      if (vm->Commit(body, body_size, true)) { | 
| +        // Create guard page before the end. | 
| +        if (vm->Guard(start + reserved_size - CodePageGuardSize())) { | 
| +          UpdateAllocatedSpaceLimits(start, start + CodePageAreaStartOffset() + | 
| +                                                commit_size - | 
| +                                                CodePageGuardStartOffset()); | 
| +          return true; | 
| +        } | 
| +        vm->Uncommit(body, body_size); | 
| +      } | 
| +    } | 
| +    vm->Uncommit(header, header_size); | 
| } | 
| - | 
| -  UpdateAllocatedSpaceLimits(start, start + CodePageAreaStartOffset() + | 
| -                                        commit_size - | 
| -                                        CodePageGuardStartOffset()); | 
| -  return true; | 
| +  return false; | 
| } | 
|  | 
|  | 
|  |