diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2011-11-10 10:39:56 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-14 16:39:25 +0100 |
commit | 2ad0e1978347dd7c1782a9edb5047351c3fb6706 (patch) | |
tree | 9e385a100ee13127f68834074edecab7a3d14384 /src/declarative/qml/v4/qv4irbuilder.cpp | |
parent | 83029e5efe6c200def9f2bb4e116fd22bb220f52 (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.cpp | 17 |
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; |