summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Roquetto <rafael.roquetto.qnx@kdab.com>2012-07-24 15:45:44 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-25 13:31:05 +0200
commit3a27d4b480214072d972ac67561f2ee4010f8baa (patch)
treed528873df84c81534c73a34370b95bf13b055f25
parent4677cf3d014d9b25c3516dd0e07a1a3fcd8af8e9 (diff)
Fix qmake hash function to use XOR
Use XOR instead of OR in order to avoid saturating all bits when computing the hash value. Change-Id: I50b1a044eb827239dae1c04732ca6a065f6233b4 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
-rw-r--r--qmake/cachekeys.h4
-rw-r--r--qmake/generators/makefile.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/qmake/cachekeys.h b/qmake/cachekeys.h
index c164304f31..da3aee1b35 100644
--- a/qmake/cachekeys.h
+++ b/qmake/cachekeys.h
@@ -73,7 +73,7 @@ struct FixStringCacheKey
}
inline uint hashCode() const {
if(!hash)
- hash = qHash(string) | qHash(flags) /*| qHash(pwd)*/;
+ hash = qHash(string) ^ qHash(flags) /*^ qHash(pwd)*/;
return hash;
}
};
@@ -98,7 +98,7 @@ struct FileInfoCacheKey
}
inline uint hashCode() const {
if(!hash)
- hash = qHash(file) /*| qHash(pwd)*/;
+ hash = qHash(file) /*^ qHash(pwd)*/;
return hash;
}
inline bool isRelativePath(const QString &file) {
diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h
index af5a3eb321..3a9bfc17e1 100644
--- a/qmake/generators/makefile.h
+++ b/qmake/generators/makefile.h
@@ -68,7 +68,7 @@ struct ReplaceExtraCompilerCacheKey
bool operator==(const ReplaceExtraCompilerCacheKey &f) const;
inline uint hashCode() const {
if(!hash)
- hash = qHash(var) | qHash(in) | qHash(out) /*| qHash(pwd)*/;
+ hash = qHash(var) ^ qHash(in) ^ qHash(out) /*^ qHash(pwd)*/;
return hash;
}
};