| Index: third_party/WebKit/Source/platform/heap/ThreadState.h
|
| diff --git a/third_party/WebKit/Source/platform/heap/ThreadState.h b/third_party/WebKit/Source/platform/heap/ThreadState.h
|
| index 456d154a3a689c083b227afc911945329f6f0716..9f09f529740fc1e981141b845d53df827cc62cae 100644
|
| --- a/third_party/WebKit/Source/platform/heap/ThreadState.h
|
| +++ b/third_party/WebKit/Source/platform/heap/ThreadState.h
|
| @@ -418,10 +418,13 @@ public:
|
|
|
| void shouldFlushHeapDoesNotContainCache() { m_shouldFlushHeapDoesNotContainCache = true; }
|
|
|
| - void registerTraceDOMWrappers(v8::Isolate* isolate, void (*traceDOMWrappers)(v8::Isolate*, Visitor*))
|
| + void registerTraceDOMWrappers(v8::Isolate* isolate,
|
| + void (*traceDOMWrappers)(v8::Isolate*, Visitor*),
|
| + void (*cleanTraceWrappersMarkingDeque)(v8::Isolate*))
|
| {
|
| m_isolate = isolate;
|
| m_traceDOMWrappers = traceDOMWrappers;
|
| + m_cleanTraceWrappersMarkingDeque = cleanTraceWrappersMarkingDeque;
|
| }
|
|
|
| // By entering a gc-forbidden scope, conservative GCs will not
|
| @@ -524,6 +527,13 @@ public:
|
|
|
| v8::Isolate* isolate() const { return m_isolate; }
|
|
|
| + void cleanTraceWrappersMarkingDeque()
|
| + {
|
| + if (m_cleanTraceWrappersMarkingDeque) {
|
| + m_cleanTraceWrappersMarkingDeque(m_isolate);
|
| + }
|
| + }
|
| +
|
| private:
|
| enum SnapshotType {
|
| HeapSnapshot,
|
| @@ -656,6 +666,7 @@ private:
|
|
|
| v8::Isolate* m_isolate;
|
| void (*m_traceDOMWrappers)(v8::Isolate*, Visitor*);
|
| + void (*m_cleanTraceWrappersMarkingDeque)(v8::Isolate*);
|
|
|
| #if defined(ADDRESS_SANITIZER)
|
| void* m_asanFakeStack;
|
|
|