aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/v4/qv4irbuilder.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2011-11-10 10:39:56 +0100
committerQt by Nokia <qt-info@nokia.com>2011-11-14 16:39:25 +0100
commit2ad0e1978347dd7c1782a9edb5047351c3fb6706 (patch)
tree9e385a100ee13127f68834074edecab7a3d14384 /src/declarative/qml/v4/qv4irbuilder.cpp
parent83029e5efe6c200def9f2bb4e116fd22bb220f52 (diff)
Use the property cache when compiling the V4 instructions.
Change-Id: Ifca6166328e7c20707fef153fa2b960da3a00a98 Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'src/declarative/qml/v4/qv4irbuilder.cpp')
-rw-r--r--src/declarative/qml/v4/qv4irbuilder.cpp17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/declarative/qml/v4/qv4irbuilder.cpp b/src/declarative/qml/v4/qv4irbuilder.cpp
index 258627a079..125e1d002a 100644
--- a/src/declarative/qml/v4/qv4irbuilder.cpp
+++ b/src/declarative/qml/v4/qv4irbuilder.cpp
@@ -466,7 +466,7 @@ bool QV4IRBuilder::visit(AST::IdentifierExpression *ast)
if (data && !data->isFunction()) {
IR::Type irType = irTypeFromVariantType(data->propType, m_engine, metaObject);
- _expr.code = _block->SYMBOL(irType, name, metaObject, data->coreIndex, IR::Name::ScopeStorage, line, column);
+ _expr.code = _block->SYMBOL(irType, name, metaObject, data, IR::Name::ScopeStorage, line, column);
found = true;
}
}
@@ -487,7 +487,7 @@ bool QV4IRBuilder::visit(AST::IdentifierExpression *ast)
if (data && !data->isFunction()) {
IR::Type irType = irTypeFromVariantType(data->propType, m_engine, metaObject);
- _expr.code = _block->SYMBOL(irType, name, metaObject, data->coreIndex, IR::Name::RootStorage, line, column);
+ _expr.code = _block->SYMBOL(irType, name, metaObject, data, IR::Name::RootStorage, line, column);
found = true;
}
}
@@ -615,7 +615,7 @@ bool QV4IRBuilder::visit(AST::FieldMemberExpression *ast)
}
IR::Type irType = irTypeFromVariantType(data->propType, m_engine, attachedMeta);
- _expr.code = _block->SYMBOL(baseName, irType, name, attachedMeta, data->coreIndex, line, column);
+ _expr.code = _block->SYMBOL(baseName, irType, name, attachedMeta, data, line, column);
}
break;
@@ -638,18 +638,13 @@ bool QV4IRBuilder::visit(AST::FieldMemberExpression *ast)
IR::Type irType = irTypeFromVariantType(data->propType, m_engine, idObject->metaObject());
_expr.code = _block->SYMBOL(baseName, irType, name,
- idObject->metaObject(), data->coreIndex, line, column);
+ idObject->metaObject(), data, line, column);
}
break;
case IR::Name::Property:
if (baseName->type == IR::ObjectType) {
- const QMetaObject *m =
- m_engine->metaObjectForType(baseName->meta->property(baseName->index).userType());
- QDeclarativePropertyCache *cache = m_engine->cache(m);
-
- QDeclarativePropertyData *data = cache->property(name);
-
+ QDeclarativePropertyData *data = baseName->property;
if (!data || data->isFunction())
return false; // Don't support methods (or non-existing properties ;)
@@ -662,7 +657,7 @@ bool QV4IRBuilder::visit(AST::FieldMemberExpression *ast)
IR::Type irType = irTypeFromVariantType(data->propType, m_engine, baseName->meta);
_expr.code = _block->SYMBOL(baseName, irType, name,
- baseName->meta, data->coreIndex, line, column);
+ baseName->meta, data, line, column);
}
break;