| Index: Source/platform/heap/InlinedGlobalMarkingVisitor.h
|
| diff --git a/Source/platform/heap/InlinedGlobalMarkingVisitor.h b/Source/platform/heap/InlinedGlobalMarkingVisitor.h
|
| index cf76a98b71f4166a4638cec8940d646f0ef5fdbd..7f4ee90f7a6091462cd2730a1b5ec760ca5fc3f9 100644
|
| --- a/Source/platform/heap/InlinedGlobalMarkingVisitor.h
|
| +++ b/Source/platform/heap/InlinedGlobalMarkingVisitor.h
|
| @@ -75,9 +75,21 @@ private:
|
| Visitor* m_visitor;
|
| };
|
|
|
| +// If T does not support trace().
|
| +template <typename T>
|
| +struct TraceCompatibilityAdaptor<T, false, false> {
|
| + inline static void trace(blink::Visitor*, T*)
|
| + {
|
| + }
|
| +
|
| + inline static void trace(InlinedGlobalMarkingVisitor, T*)
|
| + {
|
| + }
|
| +};
|
| +
|
| // If T does not support trace(InlinedGlobalMarkingVisitor).
|
| template <typename T>
|
| -struct TraceCompatibilityAdaptor<T, false> {
|
| +struct TraceCompatibilityAdaptor<T, true, false> {
|
| inline static void trace(blink::Visitor* visitor, T* self)
|
| {
|
| self->trace(visitor);
|
| @@ -92,7 +104,7 @@ struct TraceCompatibilityAdaptor<T, false> {
|
|
|
| // If T supports trace(InlinedGlobalMarkingVisitor).
|
| template <typename T>
|
| -struct TraceCompatibilityAdaptor<T, true> {
|
| +struct TraceCompatibilityAdaptor<T, true, true> {
|
| inline static void trace(blink::Visitor* visitor, T* self)
|
| {
|
| if (visitor->isGlobalMarkingVisitor()) {
|
|
|