From b681bd3e4ad20eb558da68ba1a2e2dfddfab9cf1 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 7 Jan 2014 15:59:24 +0100 Subject: [new compiler] Cleanups Tie QQmlCompilePass and QQmlTypeCompiler together, so that we can eliminate the battery of parameters to the individual compiler phases. Change-Id: If2b6cf8416e6c2253c8f054048d1fd5ae12282b6 Reviewed-by: Lars Knoll --- src/qml/qml/qqmlobjectcreator_p.h | 44 +++++++++++---------------------------- 1 file changed, 12 insertions(+), 32 deletions(-) (limited to 'src/qml/qml/qqmlobjectcreator_p.h') diff --git a/src/qml/qml/qqmlobjectcreator_p.h b/src/qml/qml/qqmlobjectcreator_p.h index 796d92a1e6..92f40648d3 100644 --- a/src/qml/qml/qqmlobjectcreator_p.h +++ b/src/qml/qml/qqmlobjectcreator_p.h @@ -45,34 +45,19 @@ #include #include #include +#include #include QT_BEGIN_NAMESPACE class QQmlAbstractBinding; - -struct QQmlCompilePass -{ - QQmlCompilePass(const QUrl &url, const QV4::CompiledData::QmlUnit *unit); - QQmlCompilePass(const QUrl &url, const QStringList &stringTable); - QList errors; - - QString stringAt(int idx) const { return jsUnit ? jsUnit->stringAt(idx): stringTable.at(idx); } -protected: - void recordError(const QV4::CompiledData::Location &location, const QString &description); - - const QUrl url; - const QV4::CompiledData::Unit *jsUnit; - const QStringList stringTable; -}; +struct QQmlTypeCompiler; class QQmlPropertyCacheCreator : public QQmlCompilePass { Q_DECLARE_TR_FUNCTIONS(QQmlPropertyCacheCreator) public: - QQmlPropertyCacheCreator(QQmlEnginePrivate *enginePrivate, const QStringList &stringTable, - const QUrl &url, const QQmlImports *imports, - QHash *resolvedTypes); + QQmlPropertyCacheCreator(QQmlTypeCompiler *typeCompiler); bool create(const QtQml::QmlObject *obj, QQmlPropertyCache **cache, QByteArray *vmeMetaObjectData); @@ -86,14 +71,7 @@ class QQmlComponentAndAliasResolver : public QQmlCompilePass { Q_DECLARE_TR_FUNCTIONS(QQmlAnonymousComponentResolver) public: - QQmlComponentAndAliasResolver(const QUrl &url, const QStringList &stringTable, - const QList &qmlObjects, - int indexOfRootObject, - const QHash &resolvedTypes, - const QList &propertyCaches, - QList *vmeMetaObjectData, - QHash *objectIndexToIdForRoot, - QHash > *objectIndexToIdPerComponent); + QQmlComponentAndAliasResolver(QQmlTypeCompiler *typeCompiler); bool resolve(); @@ -126,11 +104,7 @@ class QQmlPropertyValidator : public QQmlCompilePass { Q_DECLARE_TR_FUNCTIONS(QQmlPropertyValidator) public: - QQmlPropertyValidator(const QUrl &url, const QV4::CompiledData::QmlUnit *qmlUnit, - const QHash &resolvedTypes, - const QList &propertyCaches, - const QHash > &objectIndexToIdPerComponent, - QHash *customParserData); + QQmlPropertyValidator(QQmlTypeCompiler *typeCompiler); bool validate(); @@ -146,7 +120,7 @@ private: QHash *customParserData; }; -class QmlObjectCreator : public QQmlCompilePass +class QmlObjectCreator { Q_DECLARE_TR_FUNCTIONS(QmlObjectCreator) public: @@ -158,6 +132,8 @@ public: QQmlComponentAttached *componentAttached; QList finalizeCallbacks; + QList errors; + private: QObject *createInstance(int index, QObject *parent = 0); @@ -169,6 +145,10 @@ private: void setPropertyValue(QQmlPropertyData *property, const QV4::CompiledData::Binding *binding); void setupFunctions(); + QString stringAt(int idx) const { return qmlUnit->header.stringAt(idx); } + void recordError(const QV4::CompiledData::Location &location, const QString &description); + + QUrl url; QQmlEngine *engine; const QV4::CompiledData::QmlUnit *qmlUnit; const QV4::CompiledData::CompilationUnit *jsUnit; -- cgit v1.2.3