| Index: third_party/WebKit/Source/platform/heap/Handle.h
|
| diff --git a/third_party/WebKit/Source/platform/heap/Handle.h b/third_party/WebKit/Source/platform/heap/Handle.h
|
| index 69cb7575950ac9f977932624164767e83a43e6da..8a85126999402b48873de25152a86ee8946cf45d 100644
|
| --- a/third_party/WebKit/Source/platform/heap/Handle.h
|
| +++ b/third_party/WebKit/Source/platform/heap/Handle.h
|
| @@ -410,6 +410,12 @@ public:
|
| template<typename U>
|
| CrossThreadPersistent(const Member<U>& other) : Parent(other) { }
|
|
|
| + CrossThreadPersistent(WTF::HashTableDeletedValueType) : Parent(reinterpret_cast<T*>(-1))
|
| + {
|
| + }
|
| +
|
| + bool isHashTableDeletedValue() const { return *this == reinterpret_cast<T*>(-1); }
|
| +
|
| T* atomicGet() { return Parent::atomicGet(); }
|
|
|
| template<typename U>
|
| @@ -1116,6 +1122,11 @@ struct UntracedMemberHash : MemberHash<T> {
|
| STATIC_ONLY(UntracedMemberHash);
|
| };
|
|
|
| +template <typename T>
|
| +struct CrossThreadPersistentHash : MemberHash<T> {
|
| + STATIC_ONLY(CrossThreadPersistentHash);
|
| +};
|
| +
|
| // PtrHash is the default hash for hash tables with members.
|
| template <typename T>
|
| struct DefaultHash<blink::Member<T>> {
|
| @@ -1135,6 +1146,12 @@ struct DefaultHash<blink::UntracedMember<T>> {
|
| using Hash = UntracedMemberHash<T>;
|
| };
|
|
|
| +template <typename T>
|
| +struct DefaultHash<blink::CrossThreadPersistent<T>> {
|
| + STATIC_ONLY(DefaultHash);
|
| + using Hash = CrossThreadPersistentHash<T>;
|
| +};
|
| +
|
| template<typename T>
|
| struct NeedsTracing<blink::Member<T>> {
|
| STATIC_ONLY(NeedsTracing);
|
|
|