diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2017-03-22 12:38:22 +0100 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2017-03-22 14:45:51 +0000 |
commit | 53457970d7555307cb79f1c85fc0e3dccad45a03 (patch) | |
tree | 22142c5e7c4e75db2e27d759965fe7918bda9945 /src | |
parent | 6518e3b1b96889a1719e50e01eb8fc041c4f8d01 (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.h | 4 | ||||
-rw-r--r-- | src/lib/corelib/language/jsimports.h | 9 | ||||
-rw-r--r-- | src/lib/corelib/language/resolvedfilecontext.cpp | 3 | ||||
-rw-r--r-- | src/lib/corelib/tools/persistence.cpp | 2 |
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) { |