Fix performance regression when doing property lookups for non-existant properties
authorSimon Hausmann <simon.hausmann@digia.com>
Wed, 16 Oct 2013 12:50:57 +0000 (14:50 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 16 Oct 2013 14:03:59 +0000 (16:03 +0200)
commit7b1a8fa821ef5bac4ecad91be7f0e62809e80a12
tree6a34f8801f8a39253926243ca30bc5f3e3d1e89b
parent12c3579136b6925e75cca4f3a9b8bae2e4665db7
Fix performance regression when doing property lookups for non-existant properties

Commit 84627464eb11ca1149d46946b12e3c82eb54a8bf introduced a performance
regression of falling back to reading the QMetaObject, when the lookup for a
property in QML failed, after we've tried in the property cache. This is very
very expensive to do and was only due to QQmlPropertyMap not correctly
invalidating the property cache.

Instead remove the property cache from the property map's QObject and on the
lookup side rely on the property cache being correct in the result (positive or
negative).

Change-Id: I8a013483203f2007d48b71feafa10b3ea02c53fd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
src/qml/jsruntime/qv4qobjectwrapper.cpp
src/qml/qml/qqmlopenmetaobject.cpp
src/qml/qml/qqmlpropertycache.cpp