| 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/v8.h" | 5 #include "src/v8.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/full-codegen.h" | 9 #include "src/full-codegen.h" |
| 10 #include "src/heap/mark-compact.h" | 10 #include "src/heap/mark-compact.h" |
| (...skipping 1124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1135 page->ClearFlag(MemoryChunk::SCAN_ON_SCAVENGE); | 1135 page->ClearFlag(MemoryChunk::SCAN_ON_SCAVENGE); |
| 1136 } | 1136 } |
| 1137 | 1137 |
| 1138 DCHECK(!free_list_.ContainsPageFreeListItems(page)); | 1138 DCHECK(!free_list_.ContainsPageFreeListItems(page)); |
| 1139 | 1139 |
| 1140 if (Page::FromAllocationTop(allocation_info_.top()) == page) { | 1140 if (Page::FromAllocationTop(allocation_info_.top()) == page) { |
| 1141 allocation_info_.set_top(NULL); | 1141 allocation_info_.set_top(NULL); |
| 1142 allocation_info_.set_limit(NULL); | 1142 allocation_info_.set_limit(NULL); |
| 1143 } | 1143 } |
| 1144 | 1144 |
| 1145 page->Unlink(); | 1145 // If page is still in a list, unlink it from that list. |
| 1146 if (page->next_chunk() != NULL) { |
| 1147 DCHECK(page->prev_chunk() != NULL); |
| 1148 page->Unlink(); |
| 1149 } |
| 1150 |
| 1146 if (page->IsFlagSet(MemoryChunk::CONTAINS_ONLY_DATA)) { | 1151 if (page->IsFlagSet(MemoryChunk::CONTAINS_ONLY_DATA)) { |
| 1147 heap()->isolate()->memory_allocator()->Free(page); | 1152 heap()->isolate()->memory_allocator()->Free(page); |
| 1148 } else { | 1153 } else { |
| 1149 heap()->QueueMemoryChunkForFree(page); | 1154 heap()->QueueMemoryChunkForFree(page); |
| 1150 } | 1155 } |
| 1151 | 1156 |
| 1152 DCHECK(Capacity() > 0); | 1157 DCHECK(Capacity() > 0); |
| 1153 accounting_stats_.ShrinkSpace(AreaSize()); | 1158 accounting_stats_.ShrinkSpace(AreaSize()); |
| 1154 } | 1159 } |
| 1155 | 1160 |
| (...skipping 2068 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3224 object->ShortPrint(); | 3229 object->ShortPrint(); |
| 3225 PrintF("\n"); | 3230 PrintF("\n"); |
| 3226 } | 3231 } |
| 3227 printf(" --------------------------------------\n"); | 3232 printf(" --------------------------------------\n"); |
| 3228 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); | 3233 printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); |
| 3229 } | 3234 } |
| 3230 | 3235 |
| 3231 #endif // DEBUG | 3236 #endif // DEBUG |
| 3232 } | 3237 } |
| 3233 } // namespace v8::internal | 3238 } // namespace v8::internal |
| OLD | NEW |