summaryrefslogtreecommitdiff
path: root/deps/v8/src/heap/embedder-tracing.h
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2018-09-21 09:14:51 +0200
committerMichaël Zasso <targos@protonmail.com>2018-09-22 18:29:25 +0200
commit0e7ddbd3d7e9439c67573b854c49cf82c398ae82 (patch)
tree2afe372acde921cb57ddb3444ff00c5adef8848c /deps/v8/src/heap/embedder-tracing.h
parent13245dc50da4cb7443c39ef6c68d419d5e6336d4 (diff)
downloadnode-new-0e7ddbd3d7e9439c67573b854c49cf82c398ae82.tar.gz
deps: update V8 to 7.0.276.20
PR-URL: https://github.com/nodejs/node/pull/22754 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'deps/v8/src/heap/embedder-tracing.h')
-rw-r--r--deps/v8/src/heap/embedder-tracing.h21
1 files changed, 12 insertions, 9 deletions
diff --git a/deps/v8/src/heap/embedder-tracing.h b/deps/v8/src/heap/embedder-tracing.h
index 994695942b..ab8a46bb53 100644
--- a/deps/v8/src/heap/embedder-tracing.h
+++ b/deps/v8/src/heap/embedder-tracing.h
@@ -18,10 +18,7 @@ class V8_EXPORT_PRIVATE LocalEmbedderHeapTracer final {
public:
typedef std::pair<void*, void*> WrapperInfo;
- explicit LocalEmbedderHeapTracer(Isolate* isolate)
- : isolate_(isolate),
- remote_tracer_(nullptr),
- num_v8_marking_worklist_was_empty_(0) {}
+ explicit LocalEmbedderHeapTracer(Isolate* isolate) : isolate_(isolate) {}
~LocalEmbedderHeapTracer() {
if (remote_tracer_) remote_tracer_->isolate_ = nullptr;
@@ -35,14 +32,13 @@ class V8_EXPORT_PRIVATE LocalEmbedderHeapTracer final {
remote_tracer_->isolate_ = reinterpret_cast<v8::Isolate*>(isolate_);
}
- bool InUse() { return remote_tracer_ != nullptr; }
+ bool InUse() const { return remote_tracer_ != nullptr; }
void TracePrologue();
void TraceEpilogue();
void AbortTracing();
void EnterFinalPause();
- bool Trace(double deadline,
- EmbedderHeapTracer::AdvanceTracingActions actions);
+ bool Trace(double deadline);
bool IsRemoteTracingDone();
size_t NumberOfCachedWrappersToTrace() {
@@ -68,13 +64,20 @@ class V8_EXPORT_PRIVATE LocalEmbedderHeapTracer final {
num_v8_marking_worklist_was_empty_ > kMaxIncrementalFixpointRounds;
}
+ void SetEmbedderStackStateForNextFinalization(
+ EmbedderHeapTracer::EmbedderStackState stack_state);
+
private:
typedef std::vector<WrapperInfo> WrapperCache;
Isolate* const isolate_;
- EmbedderHeapTracer* remote_tracer_;
WrapperCache cached_wrappers_to_trace_;
- size_t num_v8_marking_worklist_was_empty_;
+ EmbedderHeapTracer* remote_tracer_ = nullptr;
+ size_t num_v8_marking_worklist_was_empty_ = 0;
+ EmbedderHeapTracer::EmbedderStackState embedder_stack_state_ =
+ EmbedderHeapTracer::kUnknown;
+
+ friend class EmbedderStackStateScope;
};
} // namespace internal