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

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

Issue 2787053004: Respect colorSpace in DecodingImageGenerator::onGetPixels() (Closed)
Patch Set: AlphaOption Created 3 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 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 struct PairHash 277 struct PairHash
278 : PairHashImpl<T, 278 : PairHashImpl<T,
279 U, 279 U,
280 std::is_integral<T>::value && std::is_integral<U>::value> {}; 280 std::is_integral<T>::value && std::is_integral<U>::value> {};
281 281
282 template <typename T, typename U> 282 template <typename T, typename U>
283 struct DefaultHash<std::pair<T, U>> { 283 struct DefaultHash<std::pair<T, U>> {
284 using Hash = PairHash<T, U>; 284 using Hash = PairHash<T, U>;
285 }; 285 };
286 286
287 template <typename T, typename U, typename V>
288 struct TupleHash {
Nico 2017/04/11 15:41:05 If we must have a TupleHash, consider making it a
msarett1 2017/04/11 20:52:05 Seems fine to write a custom hashing implementatio
289 static unsigned GetHash(const std::tuple<T, U, V>& p) {
290 return HashInts(HashInts(DefaultHash<T>::Hash::GetHash(std::get<0>(p)),
291 DefaultHash<U>::Hash::GetHash(std::get<1>(p))),
292 DefaultHash<V>::Hash::GetHash(std::get<2>(p)));
293 }
294 static bool Equal(const std::tuple<T, U, V>& a,
295 const std::tuple<T, U, V>& b) {
296 return DefaultHash<T>::Hash::Equal(std::get<0>(a), std::get<0>(b)) &&
297 DefaultHash<U>::Hash::Equal(std::get<1>(a), std::get<1>(b)) &&
298 DefaultHash<V>::Hash::Equal(std::get<2>(a), std::get<2>(b));
299 }
300 static const bool safe_to_compare_to_empty_or_deleted =
301 DefaultHash<T>::Hash::safe_to_compare_to_empty_or_deleted &&
302 DefaultHash<U>::Hash::safe_to_compare_to_empty_or_deleted &&
303 DefaultHash<V>::Hash::safe_to_compare_to_empty_or_deleted;
304 };
305
306 template <typename T, typename U, typename V>
307 struct DefaultHash<std::tuple<T, U, V>> {
308 using Hash = TupleHash<T, U, V>;
309 };
310
287 } // namespace WTF 311 } // namespace WTF
288 312
289 using WTF::DefaultHash; 313 using WTF::DefaultHash;
290 using WTF::IntHash; 314 using WTF::IntHash;
291 using WTF::PtrHash; 315 using WTF::PtrHash;
292 316
293 #endif // WTF_HashFunctions_h 317 #endif // WTF_HashFunctions_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698