From 60caec48d1f9ad527f87b10d5338fa2088d4b4fb Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Mon, 7 Dec 2009 11:12:55 +0100
Subject: [PATCH] Store the documents in an hash.

---
 src/libs/cplusplus/CppDocument.cpp              |  4 ++--
 src/libs/cplusplus/CppDocument.h                | 17 ++++++-----------
 src/libs/cplusplus/LookupContext.cpp            |  9 +++++++--
 src/libs/cplusplus/LookupContext.h              |  4 ++--
 src/plugins/cpptools/cppmodelmanagerinterface.h |  1 +
 5 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp
index 9eeb1311eb4..305f8a39beb 100644
--- a/src/libs/cplusplus/CppDocument.cpp
+++ b/src/libs/cplusplus/CppDocument.cpp
@@ -558,7 +558,7 @@ QStringList Snapshot::filesDependingOn(const QString &fileName) const
     return deps;
 }
 
-QMap<QString, QStringList> Snapshot::dependencyTable() const
+QHash<QString, QStringList> Snapshot::dependencyTable() const
 {
     const int N = size();
     QVector<QString> files(N);
@@ -568,7 +568,7 @@ QMap<QString, QStringList> Snapshot::dependencyTable() const
 
     dependency_helper(files, fileIndex, includes, includeMap);
 
-    QMap<QString, QStringList> depMap;
+    QHash<QString, QStringList> depMap;
 
     for (int index = 0; index < files.size(); ++index) {
         QStringList deps;
diff --git a/src/libs/cplusplus/CppDocument.h b/src/libs/cplusplus/CppDocument.h
index 22129ad1870..19be7e7660b 100644
--- a/src/libs/cplusplus/CppDocument.h
+++ b/src/libs/cplusplus/CppDocument.h
@@ -33,15 +33,10 @@
 #include <CPlusPlusForwardDeclarations.h>
 #include "Macro.h"
 
-#include <QByteArray>
-#include <QFileInfo>
-#include <QList>
-#include <QMap>
-#include <QBitArray>
-#include <QSharedPointer>
-#include <QString>
-#include <QStringList>
-#include <QDateTime>
+#include <QtCore/QSharedPointer>
+#include <QtCore/QDateTime>
+#include <QtCore/QHash>
+#include <QtCore/QFileInfo>
 
 namespace CPlusPlus {
 
@@ -323,7 +318,7 @@ private:
 
 class CPLUSPLUS_EXPORT Snapshot
 {
-    typedef QMap<QString, Document::Ptr> _Base;
+    typedef QHash<QString, Document::Ptr> _Base;
 
 public:
     Snapshot();
@@ -358,7 +353,7 @@ public:
     QSharedPointer<NamespaceBinding> globalNamespaceBinding(Document::Ptr doc) const;
 
     QStringList filesDependingOn(const QString &fileName) const;
-    QMap<QString, QStringList> dependencyTable() const;
+    QHash<QString, QStringList> dependencyTable() const;
 
 private:
     void simplified_helper(Document::Ptr doc, Snapshot *snapshot) const;
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index cbd0bce1df0..c09bcf6c7ae 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -41,8 +41,6 @@
 
 #include <QtDebug>
 
-using namespace CPlusPlus;
-
 QT_BEGIN_NAMESPACE
 uint qHash(const CPlusPlus::LookupItem &key)
 {
@@ -52,6 +50,13 @@ uint qHash(const CPlusPlus::LookupItem &key)
 }
 QT_END_NAMESPACE
 
+uint CPlusPlus::qHash(const CPlusPlus::LookupItem &key)
+{
+    return QT_PREPEND_NAMESPACE(qHash)(key);
+}
+
+using namespace CPlusPlus;
+
 /////////////////////////////////////////////////////////////////////
 // LookupContext
 /////////////////////////////////////////////////////////////////////
diff --git a/src/libs/cplusplus/LookupContext.h b/src/libs/cplusplus/LookupContext.h
index bced5f4cf49..1430652107f 100644
--- a/src/libs/cplusplus/LookupContext.h
+++ b/src/libs/cplusplus/LookupContext.h
@@ -228,12 +228,12 @@ private:
     QList<Scope *> _visibleScopes;
 };
 
-} // end of namespace CPlusPlus
+uint qHash(const CPlusPlus::LookupItem &result);
 
+} // end of namespace CPlusPlus
 
 QT_BEGIN_NAMESPACE
 uint qHash(const CPlusPlus::LookupItem &result);
 QT_END_NAMESPACE
 
-
 #endif // CPLUSPLUS_LOOKUPCONTEXT_H
diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.h b/src/plugins/cpptools/cppmodelmanagerinterface.h
index 1976df75eab..2d3b488ea0e 100644
--- a/src/plugins/cpptools/cppmodelmanagerinterface.h
+++ b/src/plugins/cpptools/cppmodelmanagerinterface.h
@@ -35,6 +35,7 @@
 #include <QtCore/QObject>
 #include <QtCore/QMap>
 #include <QtCore/QPointer>
+#include <QtCore/QStringList>
 
 namespace ProjectExplorer {
     class Project;
-- 
GitLab