diff options
Diffstat (limited to 'src/qml/compiler/qqmltypecompiler_p.h')
-rw-r--r-- | src/qml/compiler/qqmltypecompiler_p.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/qml/compiler/qqmltypecompiler_p.h b/src/qml/compiler/qqmltypecompiler_p.h index ffe04eb090..a49b97453f 100644 --- a/src/qml/compiler/qqmltypecompiler_p.h +++ b/src/qml/compiler/qqmltypecompiler_p.h @@ -79,7 +79,9 @@ struct QQmlTypeCompiler { Q_DECLARE_TR_FUNCTIONS(QQmlTypeCompiler) public: - QQmlTypeCompiler(QQmlEnginePrivate *engine, QQmlTypeData *typeData, QmlIR::Document *document, const QQmlRefPointer<QQmlTypeNameCache> &typeNameCache, const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypeCache, + QQmlTypeCompiler(QQmlEnginePrivate *engine, QQmlTypeData *typeData, QmlIR::Document *document, + const QQmlRefPointer<QQmlTypeNameCache> &typeNameCache, + QV4::CompiledData::ResolvedTypeReferenceMap *resolvedTypeCache, const QV4::CompiledData::DependentTypesHasher &dependencyHasher); // --- interface used by QQmlPropertyCacheCreator @@ -89,7 +91,7 @@ public: QString stringAt(int idx) const; QmlIR::PoolList<QmlIR::Function>::Iterator objectFunctionsBegin(const QmlIR::Object *object) const { return object->functionsBegin(); } QmlIR::PoolList<QmlIR::Function>::Iterator objectFunctionsEnd(const QmlIR::Object *object) const { return object->functionsEnd(); } - QV4::CompiledData::ResolvedTypeReferenceMap resolvedTypes; + QV4::CompiledData::ResolvedTypeReferenceMap *resolvedTypes = nullptr; // --- QQmlRefPointer<QV4::CompiledData::CompilationUnit> compile(); @@ -124,6 +126,11 @@ public: void addImport(const QString &module, const QString &qualifier, int majorVersion, int minorVersion); + QV4::CompiledData::ResolvedTypeReference *resolvedType(int id) const + { + return resolvedTypes->value(id); + } + private: QList<QQmlError> errors; QQmlEnginePrivate *engine; @@ -150,6 +157,14 @@ protected: void recordError(const QQmlCompileError &error) { compiler->recordError(error); } + QV4::CompiledData::ResolvedTypeReference *resolvedType(int id) const + { return compiler->resolvedType(id); } + bool containsResolvedType(int id) const + { return compiler->resolvedTypes->contains(id); } + QV4::CompiledData::ResolvedTypeReferenceMap::iterator insertResolvedType( + int id, QV4::CompiledData::ResolvedTypeReference *value) + { return compiler->resolvedTypes->insert(id, value); } + QQmlTypeCompiler *compiler; }; @@ -172,7 +187,6 @@ private: const QVector<QmlIR::Object*> &qmlObjects; const QQmlImports *imports; const QHash<int, QQmlCustomParser*> &customParsers; - const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypes; const QSet<QString> &illegalNames; const QQmlPropertyCacheVector * const propertyCaches; }; @@ -203,7 +217,6 @@ private: const QVector<QmlIR::Object*> &qmlObjects; const QQmlPropertyCacheVector * const propertyCaches; const QQmlImports *imports; - QV4::CompiledData::ResolvedTypeReferenceMap *resolvedTypes; }; class QQmlCustomParserScriptIndexer: public QQmlCompilePass @@ -278,7 +291,6 @@ protected: QMap<int, int> _idToObjectIndex; QVector<int> _objectsWithAliases; - QV4::CompiledData::ResolvedTypeReferenceMap *resolvedTypes; QQmlPropertyCacheVector propertyCaches; }; @@ -311,7 +323,6 @@ private: bool compileComponent(int componentRoot); bool compileJavaScriptCodeInObjectsRecursively(int objectIndex, int scopeObjectIndex); - const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypes; const QHash<int, QQmlCustomParser*> &customParsers; const QVector<QmlIR::Object*> &qmlObjects; const QQmlPropertyCacheVector * const propertyCaches; |