Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(442)

Side by Side Diff: third_party/WebKit/Source/wtf/HashFunctions.h

Issue 1884113002: Remove RawPtr.h (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix HeapTest.Bind expectation Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2005, 2006, 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 static unsigned hash(const RefPtr<T>& key) { return hash(key.get()); } 148 static unsigned hash(const RefPtr<T>& key) { return hash(key.get()); }
149 static unsigned hash(const PassRefPtr<T>& key) { return hash(key.get()); } 149 static unsigned hash(const PassRefPtr<T>& key) { return hash(key.get()); }
150 using PtrHash<T>::equal; 150 using PtrHash<T>::equal;
151 static bool equal(const RefPtr<T>& a, const RefPtr<T>& b) { return a == b; } 151 static bool equal(const RefPtr<T>& a, const RefPtr<T>& b) { return a == b; }
152 static bool equal(T* a, const RefPtr<T>& b) { return a == b; } 152 static bool equal(T* a, const RefPtr<T>& b) { return a == b; }
153 static bool equal(const RefPtr<T>& a, T* b) { return a == b; } 153 static bool equal(const RefPtr<T>& a, T* b) { return a == b; }
154 static bool equal(const RefPtr<T>& a, const PassRefPtr<T>& b) { return a == b; } 154 static bool equal(const RefPtr<T>& a, const PassRefPtr<T>& b) { return a == b; }
155 }; 155 };
156 156
157 template <typename T> 157 template <typename T>
158 struct RawPtrHash : PtrHash<T> {
159 using PtrHash<T>::hash;
160 static unsigned hash(const RawPtr<T>& key) { return hash(key.get()); }
161 using PtrHash<T>::equal;
162 static bool equal(const RawPtr<T>& a, const RawPtr<T>& b) { return a == b; }
163 static bool equal(T* a, const RawPtr<T>& b) { return a == b; }
164 static bool equal(const RawPtr<T>& a, T* b) { return a == b; }
165 };
166
167 template <typename T>
168 struct OwnPtrHash : PtrHash<T> { 158 struct OwnPtrHash : PtrHash<T> {
169 using PtrHash<T>::hash; 159 using PtrHash<T>::hash;
170 static unsigned hash(const OwnPtr<T>& key) { return hash(key.get()); } 160 static unsigned hash(const OwnPtr<T>& key) { return hash(key.get()); }
171 static unsigned hash(const PassOwnPtr<T>& key) { return hash(key.get()); } 161 static unsigned hash(const PassOwnPtr<T>& key) { return hash(key.get()); }
172 162
173 static bool equal(const OwnPtr<T>& a, const OwnPtr<T>& b) 163 static bool equal(const OwnPtr<T>& a, const OwnPtr<T>& b)
174 { 164 {
175 return a.get() == b.get(); 165 return a.get() == b.get();
176 } 166 }
177 static bool equal(const OwnPtr<T>& a, T* b) { return a == b; } 167 static bool equal(const OwnPtr<T>& a, T* b) { return a == b; }
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 // Specializations for pointer types. 213 // Specializations for pointer types.
224 template <typename T> 214 template <typename T>
225 struct DefaultHash<T*> { 215 struct DefaultHash<T*> {
226 using Hash = PtrHash<T>; 216 using Hash = PtrHash<T>;
227 }; 217 };
228 template <typename T> 218 template <typename T>
229 struct DefaultHash<RefPtr<T>> { 219 struct DefaultHash<RefPtr<T>> {
230 using Hash = RefPtrHash<T>; 220 using Hash = RefPtrHash<T>;
231 }; 221 };
232 template <typename T> 222 template <typename T>
233 struct DefaultHash<RawPtr<T>> {
234 using Hash = RawPtrHash<T>;
235 };
236 template <typename T>
237 struct DefaultHash<OwnPtr<T>> { 223 struct DefaultHash<OwnPtr<T>> {
238 using Hash = OwnPtrHash<T>; 224 using Hash = OwnPtrHash<T>;
239 }; 225 };
240 template <typename T> 226 template <typename T>
241 struct DefaultHash<std::unique_ptr<T>> { 227 struct DefaultHash<std::unique_ptr<T>> {
242 using Hash = UniquePtrHash<T>; 228 using Hash = UniquePtrHash<T>;
243 }; 229 };
244 230
245 // Specializations for pairs. 231 // Specializations for pairs.
246 232
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 using Hash = PairHash<T, U>; 265 using Hash = PairHash<T, U>;
280 }; 266 };
281 267
282 } // namespace WTF 268 } // namespace WTF
283 269
284 using WTF::DefaultHash; 270 using WTF::DefaultHash;
285 using WTF::IntHash; 271 using WTF::IntHash;
286 using WTF::PtrHash; 272 using WTF::PtrHash;
287 273
288 #endif // WTF_HashFunctions_h 274 #endif // WTF_HashFunctions_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebSpeechRecognitionResult.cpp ('k') | third_party/WebKit/Source/wtf/HashTraits.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698