OSDN Git Service

add a qHash for QUuid
authorIvailo Monev <xakepa10@gmail.com>
Tue, 31 May 2016 16:31:23 +0000 (16:31 +0000)
committerIvailo Monev <xakepa10@gmail.com>
Tue, 31 May 2016 16:31:23 +0000 (16:31 +0000)
upstream commits:
https://github.com/qtproject/qtbase/commit/55d68a16aafb93aa15bcdbd78892006777b6067a

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/core/plugin/quuid.cpp
src/core/plugin/quuid.h

index 34d116b..1887aad 100644 (file)
@@ -918,4 +918,15 @@ QUuid QUuid::createUuid()
     guid; otherwise returns false.
 */
 
+/**
+    Returns a hash of the QUuid
+ */
+uint qHash(const QUuid &uuid)
+{
+    return uuid.data1 ^ uuid.data2 ^ (uuid.data3 << 16)
+     ^ ((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]);
+}
+
+
 QT_END_NAMESPACE
index 59af1bf..69a403c 100644 (file)
@@ -185,6 +185,8 @@ Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QUuid &);
 Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QUuid &);
 #endif
 
+Q_CORE_EXPORT uint qHash(const QUuid &uuid);
+
 QT_END_NAMESPACE
 
 QT_END_HEADER