| 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/full-codegen/full-codegen.h" |     9 #include "src/full-codegen/full-codegen.h" | 
|    10 #include "src/heap/slot-set.h" |    10 #include "src/heap/slot-set.h" | 
| (...skipping 1120 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1131     Address cur = obj->address(); |  1131     Address cur = obj->address(); | 
|  1132     Address next = cur + obj->Size(); |  1132     Address next = cur + obj->Size(); | 
|  1133     if ((cur <= addr) && (addr < next)) return obj; |  1133     if ((cur <= addr) && (addr < next)) return obj; | 
|  1134   } |  1134   } | 
|  1135  |  1135  | 
|  1136   UNREACHABLE(); |  1136   UNREACHABLE(); | 
|  1137   return Smi::FromInt(0); |  1137   return Smi::FromInt(0); | 
|  1138 } |  1138 } | 
|  1139  |  1139  | 
|  1140  |  1140  | 
|  1141 bool PagedSpace::CanExpand(size_t size) { |  | 
|  1142   DCHECK(heap()->mark_compact_collector()->is_compacting() || |  | 
|  1143          Capacity() <= heap()->MaxOldGenerationSize()); |  | 
|  1144  |  | 
|  1145   // Are we going to exceed capacity for this space? At this point we can be |  | 
|  1146   // way over the maximum size because of AlwaysAllocate scopes and large |  | 
|  1147   // objects. |  | 
|  1148   if (!heap()->CanExpandOldGeneration(static_cast<int>(size))) return false; |  | 
|  1149  |  | 
|  1150   return true; |  | 
|  1151 } |  | 
|  1152  |  | 
|  1153  |  | 
|  1154 bool PagedSpace::Expand() { |  1141 bool PagedSpace::Expand() { | 
|  1155   intptr_t size = AreaSize(); |  1142   int size = AreaSize(); | 
|  1156   if (snapshotable() && !HasPages()) { |  1143   if (snapshotable() && !HasPages()) { | 
|  1157     size = Snapshot::SizeOfFirstPage(heap()->isolate(), identity()); |  1144     size = Snapshot::SizeOfFirstPage(heap()->isolate(), identity()); | 
|  1158   } |  1145   } | 
|  1159  |  1146  | 
|  1160   if (!CanExpand(size)) return false; |  1147   if (!heap()->CanExpandOldGeneration(size)) return false; | 
|  1161  |  1148  | 
|  1162   Page* p = heap()->isolate()->memory_allocator()->AllocatePage(size, this, |  1149   Page* p = heap()->isolate()->memory_allocator()->AllocatePage(size, this, | 
|  1163                                                                 executable()); |  1150                                                                 executable()); | 
|  1164   if (p == NULL) return false; |  1151   if (p == NULL) return false; | 
|  1165  |  1152  | 
|  1166   AccountCommitted(static_cast<intptr_t>(p->size())); |  1153   AccountCommitted(static_cast<intptr_t>(p->size())); | 
|  1167  |  1154  | 
|  1168   // Pages created during bootstrapping may contain immortal immovable objects. |  1155   // Pages created during bootstrapping may contain immortal immovable objects. | 
|  1169   if (!heap()->deserialization_complete()) p->MarkNeverEvacuate(); |  1156   if (!heap()->deserialization_complete()) p->MarkNeverEvacuate(); | 
|  1170  |  1157  | 
| (...skipping 1991 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3162     object->ShortPrint(); |  3149     object->ShortPrint(); | 
|  3163     PrintF("\n"); |  3150     PrintF("\n"); | 
|  3164   } |  3151   } | 
|  3165   printf(" --------------------------------------\n"); |  3152   printf(" --------------------------------------\n"); | 
|  3166   printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); |  3153   printf(" Marked: %x, LiveCount: %x\n", mark_size, LiveBytes()); | 
|  3167 } |  3154 } | 
|  3168  |  3155  | 
|  3169 #endif  // DEBUG |  3156 #endif  // DEBUG | 
|  3170 }  // namespace internal |  3157 }  // namespace internal | 
|  3171 }  // namespace v8 |  3158 }  // namespace v8 | 
| OLD | NEW |