aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/v4/qv4irbuilder.cpp
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2012-05-25 11:40:56 +0100
committerQt by Nokia <qt-info@nokia.com>2012-05-25 14:44:05 +0200
commitadd9da7811aca90febf90555f4c18e5d84ab7eec (patch)
treeed15088cc58448700afb38b73e14eafc6eece409 /src/qml/qml/v4/qv4irbuilder.cpp
parent7f626e206614f6030ee0fc994eb9b3602f133d87 (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/qv4irbuilder.cpp')
-rw-r--r--src/qml/qml/v4/qv4irbuilder.cpp8
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;