diff options
author | Marco Benelli <[email protected]> | 2015-09-14 12:48:05 +0200 |
---|---|---|
committer | Marco Benelli <[email protected]> | 2015-09-17 10:59:59 +0000 |
commit | e69bb933e359432cc2c8c703a7c00eb27daf29f5 (patch) | |
tree | 9d00c33989874870b9845f4d3da00ce68026fa04 /src/libs/qmljs/qmljsinterpreter.cpp | |
parent | 68f6eec47ae733bf08156677de6343b126e5d914 (diff) |
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 <[email protected]>
Diffstat (limited to 'src/libs/qmljs/qmljsinterpreter.cpp')
-rw-r--r-- | src/libs/qmljs/qmljsinterpreter.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index 5b9c3d2fd9e..b7f2a915c25 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())) |