summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlcontext_p.h
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-08-10 05:37:19 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-08-10 08:01:37 (GMT)
commit8c3405bbf65826f0ab0be0bd090d723f8efaa3af (patch)
treef6886a2b8a86f567b98728bba9cdc3d1be780dcf /src/declarative/qml/qmlcontext_p.h
parent12ffa33ddc725cd94662a383af6e1793049c807c (diff)
downloadQt-8c3405bbf65826f0ab0be0bd090d723f8efaa3af.zip
Qt-8c3405bbf65826f0ab0be0bd090d723f8efaa3af.tar.gz
Qt-8c3405bbf65826f0ab0be0bd090d723f8efaa3af.tar.bz2
Abstract expression and binding APIs
By splitting the interface through which the system interacts with bindings away from a specific implementation, we can introduce highly specialized implementations for specific optimizations. This commit also includes a sample optimization for object properties being assigned directly from a local id.
Diffstat (limited to 'src/declarative/qml/qmlcontext_p.h')
-rw-r--r--src/declarative/qml/qmlcontext_p.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/declarative/qml/qmlcontext_p.h b/src/declarative/qml/qmlcontext_p.h
index 0424a85..b5479d9 100644
--- a/src/declarative/qml/qmlcontext_p.h
+++ b/src/declarative/qml/qmlcontext_p.h
@@ -68,6 +68,8 @@ class QmlExpression;
class QmlEngine;
class QmlExpression;
class QmlExpressionPrivate;
+class QmlAbstractExpression;
+class QmlBindingIdOptimization;
class QmlContextPrivate : public QObjectPrivate
{
@@ -104,13 +106,15 @@ public:
void invalidateEngines();
QSet<QmlContext *> childContexts;
- QmlExpressionPrivate *expressions;
+ QmlAbstractExpression *expressions;
QObjectList contextObjects;
struct ContextGuard : public QGuard<QObject>
{
+ ContextGuard() : priv(0), bindings(0) {}
QmlContextPrivate *priv;
+ QmlBindingIdOptimization *bindings;
ContextGuard &operator=(QObject *obj) {
(QGuard<QObject>&)*this = obj; return *this;
}