From: Kent Hansen Date: Thu, 11 Aug 2011 07:15:38 +0000 (+0200) Subject: Set IsDirect flag of property cache data if appropriate X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=038619bf2c5e7d2c18a6f463cd994d8b3831e61f;p=konrad%2Fqtdeclarative.git Set IsDirect flag of property cache data if appropriate The IsDirect flag was only set in QDeclarativePropertyCache::append(), but it should be set in create() as well. Change-Id: I43c980e5f7e01e44ade662c11c2daf7a9a44d299 Reviewed-on: http://codereview.qt.nokia.com/2844 Reviewed-by: Qt Sanity Bot Reviewed-by: Aaron Kennedy --- diff --git a/src/declarative/qml/qdeclarativepropertycache.cpp b/src/declarative/qml/qdeclarativepropertycache.cpp index d2148ad..0c595a9 100644 --- a/src/declarative/qml/qdeclarativepropertycache.cpp +++ b/src/declarative/qml/qdeclarativepropertycache.cpp @@ -247,6 +247,8 @@ QDeclarativePropertyCache::Data QDeclarativePropertyCache::create(const QMetaObj QMetaProperty p = metaObject->property(idx); if (p.isScriptable()) { rv.load(metaObject->property(idx)); + if (!isDynamicMetaObject(cmo)) + rv.flags |= Data::IsDirect; return rv; } else { while (cmo && cmo->propertyOffset() >= idx) @@ -271,6 +273,8 @@ QDeclarativePropertyCache::Data QDeclarativePropertyCache::create(const QMetaObj if (methodNameRef == property) { rv.load(m); + if (!isDynamicMetaObject(m.enclosingMetaObject())) + rv.flags |= Data::IsDirect; return rv; } }