| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/heap/spaces.h" | 5 #include "src/heap/spaces.h" |
| 6 | 6 |
| 7 #include "src/base/bits.h" | 7 #include "src/base/bits.h" |
| 8 #include "src/base/platform/platform.h" | 8 #include "src/base/platform/platform.h" |
| 9 #include "src/base/platform/semaphore.h" | 9 #include "src/base/platform/semaphore.h" |
| 10 #include "src/full-codegen/full-codegen.h" | 10 #include "src/full-codegen/full-codegen.h" |
| (...skipping 862 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 873 } | 873 } |
| 874 | 874 |
| 875 template <typename SpaceType> | 875 template <typename SpaceType> |
| 876 MemoryChunk* MemoryAllocator::AllocatePagePooled(SpaceType* owner) { | 876 MemoryChunk* MemoryAllocator::AllocatePagePooled(SpaceType* owner) { |
| 877 MemoryChunk* chunk = unmapper()->TryGetPooledMemoryChunkSafe(); | 877 MemoryChunk* chunk = unmapper()->TryGetPooledMemoryChunkSafe(); |
| 878 if (chunk == nullptr) return nullptr; | 878 if (chunk == nullptr) return nullptr; |
| 879 const int size = MemoryChunk::kPageSize; | 879 const int size = MemoryChunk::kPageSize; |
| 880 const Address start = reinterpret_cast<Address>(chunk); | 880 const Address start = reinterpret_cast<Address>(chunk); |
| 881 const Address area_start = start + MemoryChunk::kObjectStartOffset; | 881 const Address area_start = start + MemoryChunk::kObjectStartOffset; |
| 882 const Address area_end = start + size; | 882 const Address area_end = start + size; |
| 883 CommitBlock(reinterpret_cast<Address>(chunk), size, NOT_EXECUTABLE); | 883 if (!CommitBlock(reinterpret_cast<Address>(chunk), size, NOT_EXECUTABLE)) { |
| 884 return nullptr; |
| 885 } |
| 884 base::VirtualMemory reservation(start, size); | 886 base::VirtualMemory reservation(start, size); |
| 885 MemoryChunk::Initialize(isolate_->heap(), start, size, area_start, area_end, | 887 MemoryChunk::Initialize(isolate_->heap(), start, size, area_start, area_end, |
| 886 NOT_EXECUTABLE, owner, &reservation); | 888 NOT_EXECUTABLE, owner, &reservation); |
| 887 size_.Increment(size); | 889 size_.Increment(size); |
| 888 return chunk; | 890 return chunk; |
| 889 } | 891 } |
| 890 | 892 |
| 891 bool MemoryAllocator::CommitBlock(Address start, size_t size, | 893 bool MemoryAllocator::CommitBlock(Address start, size_t size, |
| 892 Executability executable) { | 894 Executability executable) { |
| 893 if (!CommitMemory(start, size, executable)) return false; | 895 if (!CommitMemory(start, size, executable)) return false; |
| (...skipping 2328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3222 object->ShortPrint(); | 3224 object->ShortPrint(); |
| 3223 PrintF("\n"); | 3225 PrintF("\n"); |
| 3224 } | 3226 } |
| 3225 printf(" --------------------------------------\n"); | 3227 printf(" --------------------------------------\n"); |
| 3226 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); | 3228 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); |
| 3227 } | 3229 } |
| 3228 | 3230 |
| 3229 #endif // DEBUG | 3231 #endif // DEBUG |
| 3230 } // namespace internal | 3232 } // namespace internal |
| 3231 } // namespace v8 | 3233 } // namespace v8 |
| OLD | NEW |