| 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 bd63dc073f2429efd81af61b96bc649acacb1d39..d93767aca69d03f9d53768f55f08a4cf38ba9a85 100644
|
| --- a/third_party/WebKit/Source/platform/heap/WrapperVisitor.h
|
| +++ b/third_party/WebKit/Source/platform/heap/WrapperVisitor.h
|
| @@ -105,10 +105,7 @@ class PLATFORM_EXPORT WrapperVisitor {
|
| return;
|
| }
|
|
|
| - if (pushToMarkingDeque(TraceTrait<T>::traceMarkedWrapper,
|
| - TraceTrait<T>::heapObjectHeader, traceable)) {
|
| - TraceTrait<T>::markWrapperNoTracing(this, traceable);
|
| - }
|
| + markAndPushToMarkingDeque(traceable);
|
| }
|
|
|
| /**
|
| @@ -164,6 +161,15 @@ class PLATFORM_EXPORT WrapperVisitor {
|
| // don't require marking wrappers in all worlds, so just nop on those.
|
| }
|
|
|
| + template <typename T>
|
| + void markAndPushToMarkingDeque(const T* traceable) const {
|
| + if (pushToMarkingDeque(TraceTrait<T>::traceMarkedWrapper,
|
| + TraceTrait<T>::heapObjectHeader, traceable)) {
|
| + TraceTrait<T>::markWrapperNoTracing(this, traceable);
|
| + }
|
| + }
|
| +
|
| + protected:
|
| // Returns true if pushing to the marking deque was successful.
|
| virtual bool pushToMarkingDeque(
|
| void (*traceWrappersCallback)(const WrapperVisitor*, const void*),
|
|
|