From a93b6256979ffe0f284eefd3d31d503a38db1973 Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Mon, 7 Dec 2009 13:00:56 +0100
Subject: [PATCH] Compile with msvc.

---
 src/libs/cplusplus/LookupContext.cpp | 13 +++----------
 src/libs/cplusplus/LookupContext.h   |  8 +++++---
 2 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index c09bcf6c7ae..e28aaa17790 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -41,18 +41,11 @@
 
 #include <QtDebug>
 
-QT_BEGIN_NAMESPACE
-uint qHash(const CPlusPlus::LookupItem &key)
-{
-    const uint h1 = qHash(key.type().type());
-    const uint h2 = qHash(key.lastVisibleSymbol());
-    return ((h1 << 16) | (h1 >> 16)) ^ h2;
-}
-QT_END_NAMESPACE
-
 uint CPlusPlus::qHash(const CPlusPlus::LookupItem &key)
 {
-    return QT_PREPEND_NAMESPACE(qHash)(key);
+    const uint h1 = QT_PREPEND_NAMESPACE(qHash)(key.type().type());
+    const uint h2 = QT_PREPEND_NAMESPACE(qHash)(key.lastVisibleSymbol());
+    return ((h1 << 16) | (h1 >> 16)) ^ h2;
 }
 
 using namespace CPlusPlus;
diff --git a/src/libs/cplusplus/LookupContext.h b/src/libs/cplusplus/LookupContext.h
index 1430652107f..beb23a833fa 100644
--- a/src/libs/cplusplus/LookupContext.h
+++ b/src/libs/cplusplus/LookupContext.h
@@ -232,8 +232,10 @@ uint qHash(const CPlusPlus::LookupItem &result);
 
 } // end of namespace CPlusPlus
 
-QT_BEGIN_NAMESPACE
-uint qHash(const CPlusPlus::LookupItem &result);
-QT_END_NAMESPACE
+#if defined(Q_CC_MSVC) && _MSC_VER <= 1300
+//this ensures that code outside QmlJS can use the hash function
+//it also a workaround for some compilers
+inline uint qHash(const CPlusPlus::LookupItem &item) { return CPlusPlus::qHash(item); }
+#endif
 
 #endif // CPLUSPLUS_LOOKUPCONTEXT_H
-- 
GitLab