From 8fd9116f280f8451cd4c4c9b52f26cc444b67b94 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 15 Aug 2014 22:23:18 +0200 Subject: [PATCH] refs #314, calculcate hash for QList --- src/blackmisc/blackmiscfreefunctions.cpp | 24 ++++++++++++++++++++++++ src/blackmisc/blackmiscfreefunctions.h | 3 +++ 2 files changed, 27 insertions(+) diff --git a/src/blackmisc/blackmiscfreefunctions.cpp b/src/blackmisc/blackmiscfreefunctions.cpp index c940ec74c..50de5d380 100644 --- a/src/blackmisc/blackmiscfreefunctions.cpp +++ b/src/blackmisc/blackmiscfreefunctions.cpp @@ -321,6 +321,30 @@ uint BlackMisc::calculateHash(const QList &values, const char *className) return hash; } +/* + * Add hash values + */ +uint BlackMisc::calculateHash(const QList &values, const char *className) +{ + QList list; + uint s = 0; + foreach(int i, values) + { + + if (i >= 0) + { + list.append(static_cast(i)); + } + else + { + list.append(static_cast(i)); + list.append(s++); + } + } + return calculateHash(list, className); +} + + /* * Fix QVariant if it comes from DBus and contains QDBusArgument */ diff --git a/src/blackmisc/blackmiscfreefunctions.h b/src/blackmisc/blackmiscfreefunctions.h index 808cdba20..ce1fc0827 100644 --- a/src/blackmisc/blackmiscfreefunctions.h +++ b/src/blackmisc/blackmiscfreefunctions.h @@ -141,6 +141,9 @@ namespace BlackMisc */ uint calculateHash(const QList &values, const char *className); + //! Hash value, but with int list + uint calculateHash(const QList &values, const char *className); + //! Real heap size of an object size_t heapSizeOf(const QMetaType &type);