Index: Source/platform/heap/Handle.h |
diff --git a/Source/platform/heap/Handle.h b/Source/platform/heap/Handle.h |
index 6a46cef73a1b9bbf1ee303b986977ceb9d7d81f2..2d272b857c2ca78768a32c773a0590f76426efc4 100644 |
--- a/Source/platform/heap/Handle.h |
+++ b/Source/platform/heap/Handle.h |
@@ -1040,6 +1040,12 @@ template<typename T> struct HashTraits<WebCore::WeakMember<T> > : SimpleClassHas |
static PeekOutType peek(const WebCore::WeakMember<T>& value) { return value; } |
static PassOutType passOut(const WebCore::WeakMember<T>& value) { return value; } |
+ static bool shouldRemoveFromCollection(WebCore::Visitor* visitor, WebCore::WeakMember<T>& value) { return !visitor->isAlive(value); } |
+ static void traceInCollection(WebCore::Visitor* visitor, WebCore::WeakMember<T>& weakMember, WebCore::ShouldWeakPointersBeMarkedStrongly strongify) |
+ { |
+ if (strongify == WebCore::WeakPointersActStrong) |
+ visitor->trace(reinterpret_cast<WebCore::Member<T>&>(weakMember)); // Strongified visit. |
+ } |
}; |
template<typename T> struct PtrHash<WebCore::Member<T> > : PtrHash<T*> { |