aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-10-20 11:31:40 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-10-20 13:53:38 +0200
commita45e31a42de7a6523588aba691f574644021a7a9 (patch)
treedb5327c7686af5171c12c786f029f33bac2e28f0 /src
parentf9590f2cb601bbba67f4b4024b91766faec8190f (diff)
QmlCompiler: Cache builtin types
If we import the builtin types multiple times from different places, we want them to match. Change-Id: I3f2f0ec0d72fb4e178ee69517ecafa8260ebc35e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/qmlcompiler/qqmljsimporter.cpp6
-rw-r--r--src/qmlcompiler/qqmljsimporter_p.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/src/qmlcompiler/qqmljsimporter.cpp b/src/qmlcompiler/qqmljsimporter.cpp
index 96df18937e..c6640316fa 100644
--- a/src/qmlcompiler/qqmljsimporter.cpp
+++ b/src/qmlcompiler/qqmljsimporter.cpp
@@ -234,6 +234,9 @@ void QQmlJSImporter::processImport(
*/
QQmlJSImporter::ImportedTypes QQmlJSImporter::importBuiltins()
{
+ if (!m_builtins.isEmpty())
+ return m_builtins;
+
AvailableTypes types;
for (auto const &dir : m_importPaths) {
@@ -246,7 +249,8 @@ QQmlJSImporter::ImportedTypes QQmlJSImporter::importBuiltins()
processImport(result, &types);
}
- return types.qmlNames;
+ m_builtins = types.qmlNames;
+ return m_builtins;
}
/*!
diff --git a/src/qmlcompiler/qqmljsimporter_p.h b/src/qmlcompiler/qqmljsimporter_p.h
index 3356997fd3..5ff2631b0a 100644
--- a/src/qmlcompiler/qqmljsimporter_p.h
+++ b/src/qmlcompiler/qqmljsimporter_p.h
@@ -105,6 +105,7 @@ private:
QHash<QPair<QString, QTypeRevision>, Import> m_seenImports;
QHash<QString, QQmlJSScope::Ptr> m_importedFiles;
QList<QQmlJS::DiagnosticMessage> m_warnings;
+ ImportedTypes m_builtins;
};
QT_END_NAMESPACE