Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index 4b26b6c5169a59ca6dfc61ea63f86a4795b3d543..83c5099b0caf00728d5d4ccc384c3c55f8cea631 100644 |
--- a/src/heap/heap.h |
+++ b/src/heap/heap.h |
@@ -1671,6 +1671,25 @@ class Heap { |
private: |
Heap(); |
+ int current_gc_flags() { return current_gc_flags_; } |
+ void set_current_gc_flags(int flags) { |
+ current_gc_flags_ = flags; |
+ DCHECK(!ShouldFinalizeIncrementalMarking() || |
+ !ShouldAbortIncrementalMarking()); |
+ } |
+ |
+ inline bool ShouldReduceMemory() const { |
+ return current_gc_flags_ & kReduceMemoryFootprintMask; |
+ } |
+ |
+ inline bool ShouldAbortIncrementalMarking() const { |
+ return current_gc_flags_ & kAbortIncrementalMarkingMask; |
+ } |
+ |
+ inline bool ShouldFinalizeIncrementalMarking() const { |
+ return current_gc_flags_ & kFinalizeIncrementalMarkingMask; |
+ } |
+ |
// The amount of external memory registered through the API kept alive |
// by global handles |
int64_t amount_of_external_allocated_memory_; |
@@ -2273,6 +2292,9 @@ class Heap { |
// configured through the API until it is set up. |
bool configured_; |
+ // Currently set GC flags that are respected by all GC components. |
+ int current_gc_flags_; |
+ |
ExternalStringTable external_string_table_; |
VisitorDispatchTable<ScavengingCallback> scavenging_visitors_table_; |
@@ -2316,12 +2338,16 @@ class Heap { |
friend class GCCallbacksScope; |
friend class GCTracer; |
friend class HeapIterator; |
+ friend class IncrementalMarking; |
friend class Isolate; |
friend class MarkCompactCollector; |
friend class MarkCompactMarkingVisitor; |
friend class MapCompact; |
friend class Page; |
+ // Used in cctest. |
+ friend class HeapTester; |
+ |
DISALLOW_COPY_AND_ASSIGN(Heap); |
}; |