diff options
Diffstat (limited to 'src/qml/qml/qqmltypedata_p.h')
-rw-r--r-- | src/qml/qml/qqmltypedata_p.h | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/qml/qml/qqmltypedata_p.h b/src/qml/qml/qqmltypedata_p.h index d5398b0b5f..97419b916b 100644 --- a/src/qml/qml/qqmltypedata_p.h +++ b/src/qml/qml/qqmltypedata_p.h @@ -55,10 +55,7 @@ private: public: ~QQmlTypeData() override; - const QList<ScriptReference> &resolvedScripts() const; - - QV4::ExecutableCompilationUnit *compilationUnit() const; - QV4::ExecutableCompilationUnit *compilationUnitForInlineComponent(unsigned int icObjectId) const; + QV4::CompiledData::CompilationUnit *compilationUnit() const; // Used by QQmlComponent to get notifications struct TypeDataCallback { @@ -69,7 +66,7 @@ public: void registerCallback(TypeDataCallback *); void unregisterCallback(TypeDataCallback *); - CompositeMetaTypeIds typeIds(int objectId = 0) const; + QQmlType qmlType(const QString &inlineComponentName = QString()) const; QByteArray typeClassName() const { return m_typeClassName; } SourceCodeData backupSourceCode() const { return m_backupSourceCode; } @@ -84,27 +81,32 @@ protected: QString stringAt(int index) const override; private: + using InlineComponentData = QV4::CompiledData::InlineComponentData; + bool tryLoadFromDiskCache(); bool loadFromSource(); - void restoreIR(QV4::CompiledData::CompilationUnit &&unit); + void restoreIR(const QQmlRefPointer<QV4::CompiledData::CompilationUnit> &unit); void continueLoadFromIR(); void resolveTypes(); QQmlError buildTypeResolutionCaches( QQmlRefPointer<QQmlTypeNameCache> *typeNameCache, - QV4::ResolvedTypeReferenceMap *resolvedTypeCache + QV4::CompiledData::ResolvedTypeReferenceMap *resolvedTypeCache ) const; void compile(const QQmlRefPointer<QQmlTypeNameCache> &typeNameCache, - QV4::ResolvedTypeReferenceMap *resolvedTypeCache, + QV4::CompiledData::ResolvedTypeReferenceMap *resolvedTypeCache, const QV4::CompiledData::DependentTypesHasher &dependencyHasher); - void createTypeAndPropertyCaches(const QQmlRefPointer<QQmlTypeNameCache> &typeNameCache, - const QV4::ResolvedTypeReferenceMap &resolvedTypeCache); + QQmlError createTypeAndPropertyCaches( + const QQmlRefPointer<QQmlTypeNameCache> &typeNameCache, + const QV4::CompiledData::ResolvedTypeReferenceMap &resolvedTypeCache); bool resolveType(const QString &typeName, QTypeRevision &version, TypeReference &ref, int lineNumber = -1, int columnNumber = -1, bool reportErrors = true, QQmlType::RegistrationType registrationType = QQmlType::AnyRegistrationType, bool *typeRecursionDetected = nullptr); - void scriptImported(const QQmlRefPointer<QQmlScriptBlob> &blob, const QV4::CompiledData::Location &location, const QString &qualifier, const QString &nameSpace) override; + void scriptImported( + const QQmlRefPointer<QQmlScriptBlob> &blob, const QV4::CompiledData::Location &location, + const QString &nameSpace, const QString &qualifier) override; SourceCodeData m_backupSourceCode; // used when cache verification fails. QScopedPointer<QmlIR::Document> m_document; @@ -121,16 +123,15 @@ private: QMap<int, TypeReference> m_resolvedTypes; bool m_typesResolved:1; - // Used for self-referencing types, otherwise -1. - CompositeMetaTypeIds m_typeIds; + // Used for self-referencing types, otherwise invalid. + QQmlType m_qmlType; QByteArray m_typeClassName; // used for meta-object later - using ExecutableCompilationUnitPtr = QQmlRefPointer<QV4::ExecutableCompilationUnit>; + using CompilationUnitPtr = QQmlRefPointer<QV4::CompiledData::CompilationUnit>; - QHash<int, InlineComponentData> m_inlineComponentData; + QHash<QString, InlineComponentData> m_inlineComponentData; - ExecutableCompilationUnitPtr m_compiledData; - QHash<int, ExecutableCompilationUnitPtr> m_inlineComponentToCompiledData; + CompilationUnitPtr m_compiledData; QList<TypeDataCallback *> m_callbacks; |