aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2017-03-22 12:38:22 +0100
committerJoerg Bornemann <joerg.bornemann@qt.io>2017-03-22 14:45:51 +0000
commit53457970d7555307cb79f1c85fc0e3dccad45a03 (patch)
tree22142c5e7c4e75db2e27d759965fe7918bda9945 /src
parent6518e3b1b96889a1719e50e01eb8fc041c4f8d01 (diff)
Make JsImports an std::vector
JsImport is too big for being kept efficiently in a QList. Change-Id: I8bfc68a44d0feea498435b78a3d2de9977351857 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/lib/corelib/language/filecontextbase.h4
-rw-r--r--src/lib/corelib/language/jsimports.h9
-rw-r--r--src/lib/corelib/language/resolvedfilecontext.cpp3
-rw-r--r--src/lib/corelib/tools/persistence.cpp2
4 files changed, 13 insertions, 5 deletions
diff --git a/src/lib/corelib/language/filecontextbase.h b/src/lib/corelib/language/filecontextbase.h
index 7c60da4da..8b64141d7 100644
--- a/src/lib/corelib/language/filecontextbase.h
+++ b/src/lib/corelib/language/filecontextbase.h
@@ -51,8 +51,8 @@ public:
void setFilePath(const QString &filePath) { m_filePath = filePath; }
QString filePath() const { return m_filePath; }
- void addJsImport(const JsImport &jsImport) { m_jsImports << jsImport; }
- JsImports jsImports() const { return m_jsImports; }
+ void addJsImport(const JsImport &jsImport) { m_jsImports.push_back(jsImport); }
+ const JsImports &jsImports() const { return m_jsImports; }
void addJsExtension(const QString &extension) { m_jsExtensions << extension; }
QStringList jsExtensions() const { return m_jsExtensions; }
diff --git a/src/lib/corelib/language/jsimports.h b/src/lib/corelib/language/jsimports.h
index 9802f150d..a50761615 100644
--- a/src/lib/corelib/language/jsimports.h
+++ b/src/lib/corelib/language/jsimports.h
@@ -46,6 +46,8 @@
#include <QtCore/qhash.h>
#include <QtCore/qstringlist.h>
+#include <vector>
+
namespace qbs {
namespace Internal {
@@ -79,13 +81,18 @@ public:
};
inline uint qHash(const JsImport &jsi) { return qHash(jsi.scopeName); }
-typedef QList<JsImport> JsImports;
+inline bool operator<(const JsImport &lhs, const JsImport &rhs)
+{
+ return lhs.scopeName < rhs.scopeName;
+}
inline bool operator==(const JsImport &jsi1, const JsImport &jsi2)
{
return jsi1.scopeName == jsi2.scopeName && jsi1.filePaths.toSet() == jsi2.filePaths.toSet();
}
+typedef std::vector<JsImport> JsImports;
+
} // namespace Internal
} // namespace qbs
diff --git a/src/lib/corelib/language/resolvedfilecontext.cpp b/src/lib/corelib/language/resolvedfilecontext.cpp
index 46a46288b..4605a6652 100644
--- a/src/lib/corelib/language/resolvedfilecontext.cpp
+++ b/src/lib/corelib/language/resolvedfilecontext.cpp
@@ -41,6 +41,7 @@
#include "jsimports.h"
#include <tools/persistence.h>
+#include <tools/stlutils.h>
namespace qbs {
namespace Internal {
@@ -70,7 +71,7 @@ bool operator==(const ResolvedFileContext &a, const ResolvedFileContext &b)
{
return a.filePath() == b.filePath()
&& a.jsExtensions().toSet() == b.jsExtensions().toSet()
- && a.jsImports().toSet() == b.jsImports().toSet();
+ && sorted(a.jsImports()) == sorted(b.jsImports());
}
} // namespace Internal
diff --git a/src/lib/corelib/tools/persistence.cpp b/src/lib/corelib/tools/persistence.cpp
index 5e92fa493..8330dfe13 100644
--- a/src/lib/corelib/tools/persistence.cpp
+++ b/src/lib/corelib/tools/persistence.cpp
@@ -50,7 +50,7 @@
namespace qbs {
namespace Internal {
-static const char QBS_PERSISTENCE_MAGIC[] = "QBSPERSISTENCE-98";
+static const char QBS_PERSISTENCE_MAGIC[] = "QBSPERSISTENCE-99";
PersistentPool::PersistentPool(Logger &logger) : m_logger(logger)
{