diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index c09bcf6c7aebe2eb94eded701e59465068f491d4..e28aaa17790f375b8e0906269ba6089cdca56da0 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 1430652107f52c13a8bc570baf709907b766adc3..beb23a833faff2dc88d7883bbd562e1221a19fc3 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