Index: Source/platform/heap/Visitor.h |
diff --git a/Source/platform/heap/Visitor.h b/Source/platform/heap/Visitor.h |
index e92e89f3377d914597c9a7c4703f5518cef2384d..63773aca74b22d2fdb8bb30839a01b5e2fda5e47 100644 |
--- a/Source/platform/heap/Visitor.h |
+++ b/Source/platform/heap/Visitor.h |
@@ -130,7 +130,7 @@ struct FinalizerTraitImpl<T, false> { |
// behavior is not desired. |
template<typename T> |
struct FinalizerTrait { |
- static const bool nonTrivialFinalizer = WTF::IsSubclassOfTemplate<T, GarbageCollectedFinalized>::value; |
+ static const bool nonTrivialFinalizer = WTF::IsSubclassOfTemplate<typename WTF::RemoveConst<T>::Type, GarbageCollectedFinalized>::value; |
static void finalize(void* obj) { FinalizerTraitImpl<T, nonTrivialFinalizer>::finalize(obj); } |
}; |
@@ -146,7 +146,7 @@ template<typename T> struct GCInfoTrait; |
template<typename T> class GarbageCollected; |
class GarbageCollectedMixin; |
-template<typename T, bool = WTF::IsSubclassOfTemplate<T, GarbageCollected>::value> class NeedsAdjustAndMark; |
+template<typename T, bool = WTF::IsSubclassOfTemplate<typename WTF::RemoveConst<T>::Type, GarbageCollected>::value> class NeedsAdjustAndMark; |
template<typename T> |
class NeedsAdjustAndMark<T, true> { |
@@ -157,7 +157,7 @@ public: |
template<typename T> |
class NeedsAdjustAndMark<T, false> { |
public: |
- static const bool value = WTF::IsSubclass<T, GarbageCollectedMixin>::value; |
+ static const bool value = WTF::IsSubclass<typename WTF::RemoveConst<T>::Type, GarbageCollectedMixin>::value; |
}; |
template<typename T, bool = NeedsAdjustAndMark<T>::value> class DefaultTraceTrait; |
@@ -669,7 +669,7 @@ public: |
public: \ |
virtual void adjustAndMark(WebCore::Visitor* visitor) const OVERRIDE \ |
{ \ |
- typedef WTF::IsSubclassOfTemplate<TYPE, WebCore::GarbageCollected> IsSubclassOfGarbageCollected; \ |
+ typedef WTF::IsSubclassOfTemplate<typename WTF::RemoveConst<TYPE>::Type, WebCore::GarbageCollected> IsSubclassOfGarbageCollected; \ |
COMPILE_ASSERT(IsSubclassOfGarbageCollected::value, OnlyGarbageCollectedObjectsCanHaveGarbageCollectedMixins); \ |
visitor->mark(this, &WebCore::TraceTrait<TYPE>::trace); \ |
} \ |
@@ -713,7 +713,7 @@ struct GCInfoAtBase { |
}; |
template<typename T> class GarbageCollected; |
-template<typename T, bool = WTF::IsSubclassOfTemplate<T, GarbageCollected>::value> struct GetGarbageCollectedBase; |
+template<typename T, bool = WTF::IsSubclassOfTemplate<typename WTF::RemoveConst<T>::Type, GarbageCollected>::value> struct GetGarbageCollectedBase; |
template<typename T> |
struct GetGarbageCollectedBase<T, true> { |