diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2017-08-16 14:56:31 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2017-08-18 11:46:11 +0200 |
commit | 43a615e309e70978711f5c2c56a9881876b96349 (patch) | |
tree | a8d0899cbc1e7775f52056fc56db58b2fcf305de /src/qml/qml/qqmltypenamecache.cpp | |
parent | 6034d89bdd907d4795c19e8ac752f4eb51c82a94 (diff) | |
parent | 3513995d8fde7f002977275463fcea1b86f4a693 (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
src/qml/compiler/qqmltypecompiler.cpp
src/qml/jsruntime/qv4qmlcontext.cpp
src/qml/jsruntime/qv4qobjectwrapper.cpp
src/qml/qml/qqmlcustomparser.cpp
src/qml/qml/qqmlimport.cpp
src/qml/qml/qqmlimport_p.h
src/qml/qml/qqmlmetatype.cpp
src/qml/qml/qqmlmetatype_p.h
src/qml/qml/qqmltypenamecache.cpp
src/qml/qml/qqmltypenamecache_p.h
src/qml/qml/qqmltypewrapper.cpp
src/qml/qml/qqmltypewrapper_p.h
src/qml/qml/qqmlvmemetaobject.cpp
src/qml/util/qqmladaptormodel.cpp
Change-Id: Ic959d03e6f9c328fb02710d9abbb0f27cddde131
Diffstat (limited to 'src/qml/qml/qqmltypenamecache.cpp')
-rw-r--r-- | src/qml/qml/qqmltypenamecache.cpp | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/src/qml/qml/qqmltypenamecache.cpp b/src/qml/qml/qqmltypenamecache.cpp index 35ef8ada57..136614d332 100644 --- a/src/qml/qml/qqmltypenamecache.cpp +++ b/src/qml/qml/qqmltypenamecache.cpp @@ -55,7 +55,7 @@ QQmlTypeNameCache::~QQmlTypeNameCache() void QQmlTypeNameCache::add(const QHashedString &name, const QUrl &url, const QHashedString &nameSpace) { if (nameSpace.length() != 0) { - Import *i = m_namedImports.value(nameSpace); + QQmlImportRef *i = m_namedImports.value(nameSpace); Q_ASSERT(i != 0); i->compositeSingletons.insert(name, url); return; @@ -69,12 +69,12 @@ void QQmlTypeNameCache::add(const QHashedString &name, const QUrl &url, const QH void QQmlTypeNameCache::add(const QHashedString &name, int importedScriptIndex, const QHashedString &nameSpace) { - Import import; + QQmlImportRef import; import.scriptIndex = importedScriptIndex; import.m_qualifier = name; if (nameSpace.length() != 0) { - Import *i = m_namedImports.value(nameSpace); + QQmlImportRef *i = m_namedImports.value(nameSpace); Q_ASSERT(i != 0); m_namespacedImports[i].insert(name, import); return; @@ -100,7 +100,7 @@ QQmlTypeNameCache::Result QQmlTypeNameCache::query(const QHashedStringRef &name) // Look up anonymous types from the imports of this document QQmlImportNamespace *typeNamespace = 0; QList<QQmlError> errors; - QQmlType *t = 0; + QQmlType t; bool typeFound = m_imports.resolveType(name, &t, 0, 0, &typeNamespace, &errors); if (typeFound) { return Result(t); @@ -112,25 +112,23 @@ QQmlTypeNameCache::Result QQmlTypeNameCache::query(const QHashedStringRef &name) } QQmlTypeNameCache::Result QQmlTypeNameCache::query(const QHashedStringRef &name, - const void *importNamespace) const + const QQmlImportRef *importNamespace) const { - Q_ASSERT(importNamespace); - const Import *i = static_cast<const Import *>(importNamespace); - Q_ASSERT(i->scriptIndex == -1); + Q_ASSERT(importNamespace && importNamespace->scriptIndex == -1); - Result result = typeSearch(i->modules, name); + Result result = typeSearch(importNamespace->modules, name); if (!result.isValid()) - result = query(i->compositeSingletons, name); + result = query(importNamespace->compositeSingletons, name); if (!result.isValid()) { // Look up types from the imports of this document // ### it would be nice if QQmlImports allowed us to resolve a namespace // first, and then types on it. - QString qualifiedTypeName = i->m_qualifier + QLatin1Char('.') + name.toString(); + QString qualifiedTypeName = importNamespace->m_qualifier + QLatin1Char('.') + name.toString(); QQmlImportNamespace *typeNamespace = 0; QList<QQmlError> errors; - QQmlType *t = 0; + QQmlType t; bool typeFound = m_imports.resolveType(qualifiedTypeName, &t, 0, 0, &typeNamespace, &errors); if (typeFound) { return Result(t); @@ -155,7 +153,7 @@ QQmlTypeNameCache::Result QQmlTypeNameCache::query(const QV4::String *name, QQml QString typeName = name->toQStringNoThrow(); QQmlImportNamespace *typeNamespace = 0; QList<QQmlError> errors; - QQmlType *t = 0; + QQmlType t; bool typeFound = m_imports.resolveType(typeName, &t, 0, 0, &typeNamespace, &errors, recursionRestriction); if (typeFound) { return Result(t); @@ -166,32 +164,30 @@ QQmlTypeNameCache::Result QQmlTypeNameCache::query(const QV4::String *name, QQml return result; } -QQmlTypeNameCache::Result QQmlTypeNameCache::query(const QV4::String *name, const void *importNamespace) const +QQmlTypeNameCache::Result QQmlTypeNameCache::query(const QV4::String *name, const QQmlImportRef *importNamespace) const { - Q_ASSERT(importNamespace); - const Import *i = static_cast<const Import *>(importNamespace); - Q_ASSERT(i->scriptIndex == -1); + Q_ASSERT(importNamespace && importNamespace->scriptIndex == -1); - QMap<const Import *, QStringHash<Import> >::const_iterator it = m_namespacedImports.constFind(i); + QMap<const QQmlImportRef *, QStringHash<QQmlImportRef> >::const_iterator it = m_namespacedImports.constFind(importNamespace); if (it != m_namespacedImports.constEnd()) { Result r = query(*it, name); if (r.isValid()) return r; } - Result r = typeSearch(i->modules, name); + Result r = typeSearch(importNamespace->modules, name); if (!r.isValid()) - r = query(i->compositeSingletons, name); + r = query(importNamespace->compositeSingletons, name); if (!r.isValid()) { // Look up types from the imports of this document // ### it would be nice if QQmlImports allowed us to resolve a namespace // first, and then types on it. - QString qualifiedTypeName = i->m_qualifier + QLatin1Char('.') + name->toQStringNoThrow(); + QString qualifiedTypeName = importNamespace->m_qualifier + QLatin1Char('.') + name->toQStringNoThrow(); QQmlImportNamespace *typeNamespace = 0; QList<QQmlError> errors; - QQmlType *t = 0; + QQmlType t; bool typeFound = m_imports.resolveType(qualifiedTypeName, &t, 0, 0, &typeNamespace, &errors); if (typeFound) { return Result(t); |