diff options
Diffstat (limited to 'deps/v8/src/heap/embedder-tracing.cc')
-rw-r--r-- | deps/v8/src/heap/embedder-tracing.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/deps/v8/src/heap/embedder-tracing.cc b/deps/v8/src/heap/embedder-tracing.cc index 2b46da1feb6..9c926bed69f 100644 --- a/deps/v8/src/heap/embedder-tracing.cc +++ b/deps/v8/src/heap/embedder-tracing.cc @@ -50,7 +50,8 @@ void LocalEmbedderHeapTracer::EnterFinalPause() { remote_tracer_->EnterFinalPause(embedder_stack_state_); // Resetting to state unknown as there may be follow up garbage collections // triggered from callbacks that have a different stack state. - embedder_stack_state_ = EmbedderHeapTracer::kUnknown; + embedder_stack_state_ = + EmbedderHeapTracer::EmbedderStackState::kMayContainHeapPointers; } bool LocalEmbedderHeapTracer::Trace(double deadline) { @@ -68,7 +69,7 @@ void LocalEmbedderHeapTracer::SetEmbedderStackStateForNextFinalization( if (!InUse()) return; embedder_stack_state_ = stack_state; - if (EmbedderHeapTracer::EmbedderStackState::kEmpty == stack_state) { + if (EmbedderHeapTracer::EmbedderStackState::kNoHeapPointers == stack_state) { remote_tracer()->NotifyEmptyEmbedderStack(); } } @@ -92,8 +93,11 @@ void LocalEmbedderHeapTracer::ProcessingScope::TracePossibleWrapper( void* pointer0; void* pointer1; - if (EmbedderDataSlot(js_object, 0).ToAlignedPointer(&pointer0) && pointer0 && - EmbedderDataSlot(js_object, 1).ToAlignedPointer(&pointer1)) { + if (EmbedderDataSlot(js_object, 0) + .ToAlignedPointer(tracer_->isolate_, &pointer0) && + pointer0 && + EmbedderDataSlot(js_object, 1) + .ToAlignedPointer(tracer_->isolate_, &pointer1)) { wrapper_cache_.push_back({pointer0, pointer1}); } FlushWrapperCacheIfFull(); |