| Index: Source/heap/Visitor.h
|
| diff --git a/Source/heap/Visitor.h b/Source/heap/Visitor.h
|
| index 30c6a0c8ec0a6bbdf6170842fafa204dc89b94d9..4d52a0368166e6915a8deb84de796f9f2ac4132d 100644
|
| --- a/Source/heap/Visitor.h
|
| +++ b/Source/heap/Visitor.h
|
| @@ -179,12 +179,7 @@ struct OffHeapCollectionTraceTrait;
|
|
|
| template<typename T>
|
| struct ObjectAliveTrait {
|
| - static bool isAlive(Visitor*, T);
|
| -};
|
| -
|
| -template<typename T>
|
| -struct ObjectAliveTrait<Member<T> > {
|
| - static bool isAlive(Visitor*, const Member<T>&);
|
| + static bool isAlive(Visitor*, T*);
|
| };
|
|
|
| // Visitor is used to traverse the Blink object graph. Used for the
|
| @@ -366,7 +361,10 @@ public:
|
|
|
| virtual bool isMarked(const void*) = 0;
|
|
|
| - template<typename T> inline bool isAlive(T obj) { return ObjectAliveTrait<T>::isAlive(this, obj); }
|
| + template<typename T> inline bool isAlive(T* obj)
|
| + {
|
| + return ObjectAliveTrait<T>::isAlive(this, obj);
|
| + }
|
| template<typename T> inline bool isAlive(const Member<T>& member)
|
| {
|
| return isAlive(member.get());
|
| @@ -525,7 +523,7 @@ template<typename T, bool = NeedsAdjustAndMark<T>::value> class DefaultObjectAli
|
| template<typename T>
|
| class DefaultObjectAliveTrait<T, false> {
|
| public:
|
| - static bool isAlive(Visitor* visitor, T obj)
|
| + static bool isAlive(Visitor* visitor, T* obj)
|
| {
|
| return visitor->isMarked(obj);
|
| }
|
| @@ -534,20 +532,16 @@ public:
|
| template<typename T>
|
| class DefaultObjectAliveTrait<T, true> {
|
| public:
|
| - static bool isAlive(Visitor* visitor, T obj)
|
| + static bool isAlive(Visitor* visitor, T* obj)
|
| {
|
| return obj->isAlive(visitor);
|
| }
|
| };
|
|
|
| -template<typename T> bool ObjectAliveTrait<T>::isAlive(Visitor* visitor, T obj)
|
| +template<typename T> bool ObjectAliveTrait<T>::isAlive(Visitor* visitor, T* obj)
|
| {
|
| return DefaultObjectAliveTrait<T>::isAlive(visitor, obj);
|
| }
|
| -template<typename T> bool ObjectAliveTrait<Member<T> >::isAlive(Visitor* visitor, const Member<T>& obj)
|
| -{
|
| - return visitor->isMarked(obj.get());
|
| -}
|
|
|
| // The GarbageCollectedMixin interface and helper macro
|
| // USING_GARBAGE_COLLECTED_MIXIN can be used to automatically define
|
|
|