From e69bb933e359432cc2c8c703a7c00eb27daf29f5 Mon Sep 17 00:00:00 2001 From: Marco Benelli Date: Mon, 14 Sep 2015 12:48:05 +0200 Subject: 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 --- src/libs/qmljs/qmljsinterpreter.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 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 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())) -- cgit v1.2.1