summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Benelli <marco.benelli@theqtcompany.com>2015-09-14 12:48:05 +0200
committerMarco Benelli <marco.benelli@theqtcompany.com>2015-09-17 10:59:59 +0000
commite69bb933e359432cc2c8c703a7c00eb27daf29f5 (patch)
tree9d00c33989874870b9845f4d3da00ce68026fa04
parent68f6eec47ae733bf08156677de6343b126e5d914 (diff)
downloadqt-creator-e69bb933e359432cc2c8c703a7c00eb27daf29f5.tar.gz
qmljs: set cpp object to the latest version exported
m_objectsByQualifiedName did not prefer the latest meta object revision, as consequence at type exported both anonymously and with a name, would pick up one version randomly. Change-Id: I91baf2729d0a0bda61205a62d9a38d04b4da058e Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
-rw-r--r--src/libs/qmljs/qmljsinterpreter.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index 5b9c3d2fd9..b7f2a915c2 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -1487,6 +1487,7 @@ QList<const CppComponentValue *> CppQmlTypes::createObjectsForImport(const QStri
if (m_objectsByQualifiedName.contains(key))
continue;
+ ComponentVersion cppVersion;
foreach (const FakeMetaObject::Export &bestExport, bestExports) {
QString name = bestExport.type;
bool exported = true;
@@ -1501,7 +1502,10 @@ QList<const CppComponentValue *> CppQmlTypes::createObjectsForImport(const QStri
fmoo.originId);
// use package.cppname importversion as key
- m_objectsByQualifiedName.insert(key, newComponent);
+ if (cppVersion <= bestExport.version) {
+ cppVersion = bestExport.version;
+ m_objectsByQualifiedName.insert(key, newComponent);
+ }
if (exported) {
if (!exportedObjects.contains(name) // we might have the same type in different versions
|| (newComponent->componentVersion() > exportedObjects.value(name)->componentVersion()))