OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/heap.h" | 5 #include "src/heap/heap.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/api.h" | 8 #include "src/api.h" |
9 #include "src/ast/scopeinfo.h" | 9 #include "src/ast/scopeinfo.h" |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 1140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1151 perform_gc = !CanExpandOldGeneration(reservation->at(0).size); | 1151 perform_gc = !CanExpandOldGeneration(reservation->at(0).size); |
1152 } else { | 1152 } else { |
1153 for (auto& chunk : *reservation) { | 1153 for (auto& chunk : *reservation) { |
1154 AllocationResult allocation; | 1154 AllocationResult allocation; |
1155 int size = chunk.size; | 1155 int size = chunk.size; |
1156 DCHECK_LE(size, MemoryAllocator::PageAreaSize( | 1156 DCHECK_LE(size, MemoryAllocator::PageAreaSize( |
1157 static_cast<AllocationSpace>(space))); | 1157 static_cast<AllocationSpace>(space))); |
1158 if (space == NEW_SPACE) { | 1158 if (space == NEW_SPACE) { |
1159 allocation = new_space()->AllocateRawUnaligned(size); | 1159 allocation = new_space()->AllocateRawUnaligned(size); |
1160 } else { | 1160 } else { |
1161 allocation = paged_space(space)->AllocateRawUnaligned(size); | 1161 // The deserializer will update the skip list. |
| 1162 allocation = paged_space(space)->AllocateRawUnaligned( |
| 1163 size, PagedSpace::IGNORE_SKIP_LIST); |
1162 } | 1164 } |
1163 HeapObject* free_space = nullptr; | 1165 HeapObject* free_space = nullptr; |
1164 if (allocation.To(&free_space)) { | 1166 if (allocation.To(&free_space)) { |
1165 // Mark with a free list node, in case we have a GC before | 1167 // Mark with a free list node, in case we have a GC before |
1166 // deserializing. | 1168 // deserializing. |
1167 Address free_space_address = free_space->address(); | 1169 Address free_space_address = free_space->address(); |
1168 CreateFillerObjectAt(free_space_address, size, | 1170 CreateFillerObjectAt(free_space_address, size, |
1169 ClearRecordedSlots::kNo); | 1171 ClearRecordedSlots::kNo); |
1170 DCHECK(space < SerializerDeserializer::kNumberOfPreallocatedSpaces); | 1172 DCHECK(space < SerializerDeserializer::kNumberOfPreallocatedSpaces); |
1171 chunk.start = free_space_address; | 1173 chunk.start = free_space_address; |
(...skipping 5234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6406 } | 6408 } |
6407 | 6409 |
6408 | 6410 |
6409 // static | 6411 // static |
6410 int Heap::GetStaticVisitorIdForMap(Map* map) { | 6412 int Heap::GetStaticVisitorIdForMap(Map* map) { |
6411 return StaticVisitorBase::GetVisitorId(map); | 6413 return StaticVisitorBase::GetVisitorId(map); |
6412 } | 6414 } |
6413 | 6415 |
6414 } // namespace internal | 6416 } // namespace internal |
6415 } // namespace v8 | 6417 } // namespace v8 |
OLD | NEW |