put custom hashing for UUID in UUIDHasher

This commit is contained in:
Stephen Birarda 2015-08-17 16:45:15 -07:00
parent abf07dc06d
commit d9f445d5f6
3 changed files with 8 additions and 10 deletions

View file

@ -81,7 +81,7 @@ private:
AvatarData _avatar; AvatarData _avatar;
uint16_t _lastReceivedSequenceNumber { 0 }; uint16_t _lastReceivedSequenceNumber { 0 };
std::unordered_map<QUuid, uint16_t, UUIDHasher> _lastBroadcastSequenceNumbers; std::unordered_map<QUuid, uint16_t> _lastBroadcastSequenceNumbers;
bool _hasReceivedFirstPackets = false; bool _hasReceivedFirstPackets = false;
quint64 _billboardChangeTimestamp = 0; quint64 _billboardChangeTimestamp = 0;

View file

@ -18,10 +18,4 @@ const int NUM_BYTES_RFC4122_UUID = 16;
QString uuidStringWithoutCurlyBraces(const QUuid& uuid); QString uuidStringWithoutCurlyBraces(const QUuid& uuid);
template <> struct std::hash<QUuid> {
size_t operator()(const QUuid& uuid) const {
return qHash(uuid);
}
};
#endif // hifi_UUID_h #endif // hifi_UUID_h

View file

@ -20,9 +20,13 @@
class UUIDHasher { class UUIDHasher {
public: public:
size_t operator()(const QUuid& uuid) const { size_t operator()(const QUuid& uuid) const {
return uuid.data1 ^ uuid.data2 ^ (uuid.data3 << 16) return qHash(uuid);
^ ((uuid.data4[0] << 24) | (uuid.data4[1] << 16) | (uuid.data4[2] << 8) | uuid.data4[3]) }
^ ((uuid.data4[4] << 24) | (uuid.data4[5] << 16) | (uuid.data4[6] << 8) | uuid.data4[7]); };
template <> struct std::hash<QUuid> {
size_t operator()(const QUuid& uuid) const {
return qHash(uuid);
} }
}; };