diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/chromium/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc b/chromium/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc index d0f3e987df9..795d282271c 100644 --- a/chromium/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc +++ b/chromium/third_party/blink/renderer/bindings/core/v8/v8_gc_controller.cc @@ -115,7 +115,7 @@ class MinorGCUnmodifiedWrapperVisitor : public v8::PersistentHandleVisitor { } if (class_id == WrapperTypeInfo::kNodeClassId) { - DCHECK(V8Node::hasInstance(wrapper, isolate_)); + DCHECK(V8Node::HasInstance(wrapper, isolate_)); Node* node = V8Node::ToImpl(wrapper); if (node->HasEventListeners()) { v8::Persistent<v8::Object>::Cast(*value).MarkActive(); @@ -147,12 +147,21 @@ void VisitWeakHandlesForMinorGC(v8::Isolate* isolate) { isolate->VisitWeakHandles(&visitor); } +bool IsNestedInV8GC(ThreadState* thread_state, v8::GCType type) { + return thread_state && (type == v8::kGCTypeMarkSweepCompact || + type == v8::kGCTypeIncrementalMarking); +} + } // namespace void V8GCController::GcPrologue(v8::Isolate* isolate, v8::GCType type, v8::GCCallbackFlags flags) { RUNTIME_CALL_TIMER_SCOPE(isolate, RuntimeCallStats::CounterId::kGcPrologue); + ThreadHeapStatsCollector::BlinkGCInV8Scope nested_scope( + IsNestedInV8GC(ThreadState::Current(), type) + ? ThreadState::Current()->Heap().stats_collector() + : nullptr); ScriptForbiddenScope::Enter(); // Attribute garbage collection to the all frames instead of a specific @@ -264,6 +273,10 @@ void V8GCController::GcEpilogue(v8::Isolate* isolate, v8::GCType type, v8::GCCallbackFlags flags) { RUNTIME_CALL_TIMER_SCOPE(isolate, RuntimeCallStats::CounterId::kGcEpilogue); + ThreadHeapStatsCollector::BlinkGCInV8Scope nested_scope( + IsNestedInV8GC(ThreadState::Current(), type) + ? ThreadState::Current()->Heap().stats_collector() + : nullptr); UpdateCollectedPhantomHandles(isolate); switch (type) { case v8::kGCTypeScavenge: @@ -309,7 +322,7 @@ void V8GCController::GcEpilogue(v8::Isolate* isolate, TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "UpdateCounters", TRACE_EVENT_SCOPE_THREAD, "data", - InspectorUpdateCountersEvent::Data()); + inspector_update_counters_event::Data()); } void V8GCController::CollectAllGarbageForTesting( |