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 #ifndef V8_HEAP_HEAP_H_ | 5 #ifndef V8_HEAP_HEAP_H_ |
6 #define V8_HEAP_HEAP_H_ | 6 #define V8_HEAP_HEAP_H_ |
7 | 7 |
8 #include <cmath> | 8 #include <cmath> |
9 #include <map> | 9 #include <map> |
10 | 10 |
(...skipping 1221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1232 | 1232 |
1233 void FinalizeIncrementalMarkingIfComplete(GarbageCollectionReason gc_reason); | 1233 void FinalizeIncrementalMarkingIfComplete(GarbageCollectionReason gc_reason); |
1234 | 1234 |
1235 bool TryFinalizeIdleIncrementalMarking(double idle_time_in_ms, | 1235 bool TryFinalizeIdleIncrementalMarking(double idle_time_in_ms, |
1236 GarbageCollectionReason gc_reason); | 1236 GarbageCollectionReason gc_reason); |
1237 | 1237 |
1238 void RegisterReservationsForBlackAllocation(Reservation* reservations); | 1238 void RegisterReservationsForBlackAllocation(Reservation* reservations); |
1239 | 1239 |
1240 IncrementalMarking* incremental_marking() { return incremental_marking_; } | 1240 IncrementalMarking* incremental_marking() { return incremental_marking_; } |
1241 | 1241 |
| 1242 // =========================================================================== |
| 1243 // Concurrent marking API. =================================================== |
| 1244 // =========================================================================== |
| 1245 |
| 1246 ConcurrentMarking* concurrent_marking() { return concurrent_marking_; } |
| 1247 |
1242 // The runtime uses this function to notify potentially unsafe object layout | 1248 // The runtime uses this function to notify potentially unsafe object layout |
1243 // changes that require special synchronization with the concurrent marker. | 1249 // changes that require special synchronization with the concurrent marker. |
1244 // A layout change is unsafe if | 1250 // A layout change is unsafe if |
1245 // - it removes a tagged in-object field. | 1251 // - it removes a tagged in-object field. |
1246 // - it replaces a tagged in-objects field with an untagged in-object field. | 1252 // - it replaces a tagged in-objects field with an untagged in-object field. |
1247 void NotifyObjectLayoutChange(HeapObject* object, | 1253 void NotifyObjectLayoutChange(HeapObject* object, |
1248 const DisallowHeapAllocation&); | 1254 const DisallowHeapAllocation&); |
1249 #ifdef VERIFY_HEAP | 1255 #ifdef VERIFY_HEAP |
1250 // This function checks that either | 1256 // This function checks that either |
1251 // - the map transition is safe, | 1257 // - the map transition is safe, |
(...skipping 1369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2621 friend class LargeObjectSpace; | 2627 friend class LargeObjectSpace; |
2622 friend class NewSpace; | 2628 friend class NewSpace; |
2623 friend class PagedSpace; | 2629 friend class PagedSpace; |
2624 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); | 2630 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); |
2625 }; | 2631 }; |
2626 | 2632 |
2627 } // namespace internal | 2633 } // namespace internal |
2628 } // namespace v8 | 2634 } // namespace v8 |
2629 | 2635 |
2630 #endif // V8_HEAP_HEAP_H_ | 2636 #endif // V8_HEAP_HEAP_H_ |
OLD | NEW |