Chromium Code Reviews| Index: third_party/WebKit/Source/platform/heap/WrapperVisitor.h |
| diff --git a/third_party/WebKit/Source/platform/heap/WrapperVisitor.h b/third_party/WebKit/Source/platform/heap/WrapperVisitor.h |
| index 0a2c2cf3023e32f84a5863697f28c377eb4c48be..0461b045d4ef91d3beb70199dbfece5a1da93860 100644 |
| --- a/third_party/WebKit/Source/platform/heap/WrapperVisitor.h |
| +++ b/third_party/WebKit/Source/platform/heap/WrapperVisitor.h |
| @@ -97,7 +97,10 @@ public: |
| if (!traceable) |
| return; |
| - TraceTrait<T>::markWrapper(this, traceable); |
| + pushToMarkingDeque( |
|
haraken
2016/06/20 11:10:38
Won't this regress performance?
Marcel Hlopko
2016/06/20 11:29:13
Good point! Added check for wrapperHeaderMark. I c
|
| + TraceTrait<T>::markWrapper, |
| + TraceTrait<T>::heapObjectHeader, |
| + traceable); |
| } |
| template<typename T> |
| @@ -117,8 +120,13 @@ public: |
| #undef DECLARE_DISPATCH_TRACE_WRAPPERS |
| virtual void dispatchTraceWrappers(const void*) const = 0; |
| - virtual bool markWrapperHeader(const ScriptWrappable*) const = 0; |
| - virtual bool markWrapperHeader(const void*) const = 0; |
| + virtual bool markWrapperHeader(HeapObjectHeader*) const = 0; |
| + virtual void markWrappersInAllWorlds(const ScriptWrappable*) const = 0; |
| + virtual void markWrappersInAllWorlds(const void*) const = 0; |
| + virtual void pushToMarkingDeque( |
| + void (*traceWrappersCallback)(const WrapperVisitor*, const void*), |
| + HeapObjectHeader* (*heapObjectHeaderCallback)(const void*), |
| + const void*) const = 0; |
| }; |
| } // namespace blink |