Changeset 31824 in webkit for trunk/JavaScriptCore/wtf/HashFunctions.h
- Timestamp:
- Apr 11, 2008, 4:17:21 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/wtf/HashFunctions.h
r31343 r31824 128 128 template<typename T> struct DefaultHash; 129 129 130 template<typename T, typename U> struct PairHash { 131 static unsigned hash(const std::pair<T, U>& p) 132 { 133 return intHash((static_cast<uint64_t>(DefaultHash<T>::Hash::hash(p.first)) << 32 | DefaultHash<U>::Hash::hash(p.second))); 134 } 135 static bool equal(const std::pair<T, U>& a, const std::pair<T, U>& b) 136 { 137 return DefaultHash<T>::Hash::equal(a.first, b.first) && DefaultHash<U>::Hash::equal(a.second, b.second); 138 } 139 static const bool safeToCompareToEmptyOrDeleted = DefaultHash<T>::Hash::safeToCompareToEmptyOrDeleted 140 && DefaultHash<U>::Hash::safeToCompareToEmptyOrDeleted; 141 }; 142 130 143 // make IntHash the default hash function for many integer types 131 144 … … 151 164 template<typename P> struct DefaultHash<RefPtr<P> > { typedef PtrHash<RefPtr<P> > Hash; }; 152 165 166 template<typename T, typename U> struct DefaultHash<std::pair<T, U> > { typedef PairHash<T, U> Hash; }; 167 153 168 } // namespace WTF 154 169
Note:
See TracChangeset
for help on using the changeset viewer.