diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2012-05-25 11:40:56 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-25 14:44:05 +0200 |
commit | add9da7811aca90febf90555f4c18e5d84ab7eec (patch) | |
tree | ed15088cc58448700afb38b73e14eafc6eece409 /src/qml/qml/v4 | |
parent | 7f626e206614f6030ee0fc994eb9b3602f133d87 (diff) |
Store QQmlMetaObject in V4
d2e557c2c2d7fcf3bf7c1676df3902e115986dc2 caused a regression where V4
would not handle bindings as the meta object wasn't correctly stored in
the IR.
Change-Id: Id0af2175c15db69de9108060ff4901d0003de67b
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'src/qml/qml/v4')
-rw-r--r-- | src/qml/qml/v4/qv4irbuilder.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/qml/qml/v4/qv4irbuilder.cpp b/src/qml/qml/v4/qv4irbuilder.cpp index 354a8cd70c..ddc2264cf7 100644 --- a/src/qml/qml/v4/qv4irbuilder.cpp +++ b/src/qml/qml/v4/qv4irbuilder.cpp @@ -475,7 +475,7 @@ bool QV4IRBuilder::visit(AST::IdentifierExpression *ast) if (data && !data->isFunction()) { IR::Type irType = irTypeFromVariantType(data->propType, m_engine); - _expr.code = _block->SYMBOL(irType, name, QQmlMetaObject(), data, IR::Name::ScopeStorage, line, column); + _expr.code = _block->SYMBOL(irType, name, QQmlMetaObject(cache), data, IR::Name::ScopeStorage, line, column); found = true; } } @@ -495,7 +495,7 @@ bool QV4IRBuilder::visit(AST::IdentifierExpression *ast) if (data && !data->isFunction()) { IR::Type irType = irTypeFromVariantType(data->propType, m_engine); - _expr.code = _block->SYMBOL(irType, name, QQmlMetaObject(), data, IR::Name::RootStorage, line, column); + _expr.code = _block->SYMBOL(irType, name, QQmlMetaObject(cache), data, IR::Name::RootStorage, line, column); found = true; } } @@ -632,7 +632,7 @@ bool QV4IRBuilder::visit(AST::FieldMemberExpression *ast) QByteArray utf8Name = name.toUtf8(); const char *enumName = utf8Name.constData(); - const QMetaObject *meta = baseName->meta.metaObject(); // XXX - firstCppMetaObject + const QMetaObject *meta = baseName->meta.propertyCache(m_engine)->firstCppMetaObject(); bool found = false; for (int ii = 0; !found && ii < meta->enumeratorCount(); ++ii) { QMetaEnum e = meta->enumerator(ii); @@ -685,7 +685,7 @@ bool QV4IRBuilder::visit(AST::FieldMemberExpression *ast) } IR::Type irType = irTypeFromVariantType(data->propType, m_engine); - _expr.code = _block->SYMBOL(baseName, irType, name, QQmlMetaObject(), data, line, column); + _expr.code = _block->SYMBOL(baseName, irType, name, QQmlMetaObject(cache), data, line, column); } break; |