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 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 1298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1309 | 1309 |
1310 IncrementalMarking* incremental_marking() { return &incremental_marking_; } | 1310 IncrementalMarking* incremental_marking() { return &incremental_marking_; } |
1311 | 1311 |
1312 ExternalStringTable* external_string_table() { | 1312 ExternalStringTable* external_string_table() { |
1313 return &external_string_table_; | 1313 return &external_string_table_; |
1314 } | 1314 } |
1315 | 1315 |
1316 // Returns the current sweep generation. | 1316 // Returns the current sweep generation. |
1317 int sweep_generation() { return sweep_generation_; } | 1317 int sweep_generation() { return sweep_generation_; } |
1318 | 1318 |
| 1319 bool concurrent_sweeping_enabled() { return concurrent_sweeping_enabled_; } |
| 1320 |
1319 inline Isolate* isolate(); | 1321 inline Isolate* isolate(); |
1320 | 1322 |
1321 void CallGCPrologueCallbacks(GCType gc_type, GCCallbackFlags flags); | 1323 void CallGCPrologueCallbacks(GCType gc_type, GCCallbackFlags flags); |
1322 void CallGCEpilogueCallbacks(GCType gc_type, GCCallbackFlags flags); | 1324 void CallGCEpilogueCallbacks(GCType gc_type, GCCallbackFlags flags); |
1323 | 1325 |
1324 inline bool OldGenerationAllocationLimitReached(); | 1326 inline bool OldGenerationAllocationLimitReached(); |
1325 | 1327 |
1326 inline void DoScavengeObject(Map* map, HeapObject** slot, HeapObject* obj) { | 1328 inline void DoScavengeObject(Map* map, HeapObject** slot, HeapObject* obj) { |
1327 scavenging_visitors_table_.GetVisitor(map)(map, slot, obj); | 1329 scavenging_visitors_table_.GetVisitor(map)(map, slot, obj); |
1328 } | 1330 } |
(...skipping 795 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2124 VisitorDispatchTable<ScavengingCallback> scavenging_visitors_table_; | 2126 VisitorDispatchTable<ScavengingCallback> scavenging_visitors_table_; |
2125 | 2127 |
2126 MemoryChunk* chunks_queued_for_free_; | 2128 MemoryChunk* chunks_queued_for_free_; |
2127 | 2129 |
2128 base::Mutex relocation_mutex_; | 2130 base::Mutex relocation_mutex_; |
2129 | 2131 |
2130 int gc_callbacks_depth_; | 2132 int gc_callbacks_depth_; |
2131 | 2133 |
2132 bool deserialization_complete_; | 2134 bool deserialization_complete_; |
2133 | 2135 |
| 2136 bool concurrent_sweeping_enabled_; |
| 2137 |
2134 friend class AlwaysAllocateScope; | 2138 friend class AlwaysAllocateScope; |
2135 friend class Deserializer; | 2139 friend class Deserializer; |
2136 friend class Factory; | 2140 friend class Factory; |
2137 friend class GCCallbacksScope; | 2141 friend class GCCallbacksScope; |
2138 friend class GCTracer; | 2142 friend class GCTracer; |
2139 friend class HeapIterator; | 2143 friend class HeapIterator; |
2140 friend class Isolate; | 2144 friend class Isolate; |
2141 friend class MarkCompactCollector; | 2145 friend class MarkCompactCollector; |
2142 friend class MarkCompactMarkingVisitor; | 2146 friend class MarkCompactMarkingVisitor; |
2143 friend class MapCompact; | 2147 friend class MapCompact; |
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2592 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2596 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
2593 | 2597 |
2594 private: | 2598 private: |
2595 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2599 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
2596 }; | 2600 }; |
2597 #endif // DEBUG | 2601 #endif // DEBUG |
2598 } | 2602 } |
2599 } // namespace v8::internal | 2603 } // namespace v8::internal |
2600 | 2604 |
2601 #endif // V8_HEAP_HEAP_H_ | 2605 #endif // V8_HEAP_HEAP_H_ |
OLD | NEW |