Index: src/heap/incremental-marking.h |
diff --git a/src/heap/incremental-marking.h b/src/heap/incremental-marking.h |
index 8fe341154fa0597113211ccc7dd8387a350a0c34..2c63cfcad6ade74752f06a6f51bc3cb127e29031 100644 |
--- a/src/heap/incremental-marking.h |
+++ b/src/heap/incremental-marking.h |
@@ -26,6 +26,21 @@ class IncrementalMarking { |
enum GCRequestType { COMPLETE_MARKING, OVERAPPROXIMATION }; |
+ struct StepActions { |
+ StepActions(CompletionAction complete_action_, |
+ ForceMarkingAction force_marking_, |
+ ForceCompletionAction force_completion_) |
+ : completion_action(complete_action_), |
+ force_marking(force_marking_), |
+ force_completion(force_completion_) {} |
+ |
+ CompletionAction completion_action; |
+ ForceMarkingAction force_marking; |
+ ForceCompletionAction force_completion; |
+ }; |
+ |
+ static StepActions NoForcedStepActions(); |
+ |
explicit IncrementalMarking(Heap* heap); |
static void Initialize(); |
@@ -67,7 +82,9 @@ class IncrementalMarking { |
bool WasActivated(); |
- void Start(int mark_compact_flags); |
+ void Start(int mark_compact_flags, |
+ const GCCallbackFlags gc_callback_flags = kNoGCCallbackFlags, |
+ const char* reason = nullptr); |
void Stop(); |
@@ -185,6 +202,8 @@ class IncrementalMarking { |
Heap* heap() const { return heap_; } |
+ GCCallbackFlags CallbackFlags() const { return gc_callback_flags_; } |
+ |
private: |
int64_t SpaceLeftInOldSpace(); |
@@ -243,6 +262,8 @@ class IncrementalMarking { |
GCRequestType request_type_; |
+ GCCallbackFlags gc_callback_flags_; |
+ |
DISALLOW_IMPLICIT_CONSTRUCTORS(IncrementalMarking); |
}; |
} |