From 669ba098e44080991e0d17827622ecb8928650df Mon Sep 17 00:00:00 2001 From: Chris Adams Date: Mon, 23 Apr 2012 17:25:48 +1000 Subject: Optimise memory usage of bound signals We can save a few bytes per bound signal by using a flag pointer. Change-Id: I96d23dc287722e549e21e4c5d978bed0ba2f4bed Reviewed-by: Michael Brasser --- src/qml/qml/qqmlboundsignal_p.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/qml/qml/qqmlboundsignal_p.h') diff --git a/src/qml/qml/qqmlboundsignal_p.h b/src/qml/qml/qqmlboundsignal_p.h index e4115886ba..7ce45aa646 100644 --- a/src/qml/qml/qqmlboundsignal_p.h +++ b/src/qml/qml/qqmlboundsignal_p.h @@ -58,6 +58,7 @@ #include #include #include +#include #include QT_BEGIN_NAMESPACE @@ -134,19 +135,24 @@ public: QQmlBoundSignalExpression *expression() const; QQmlBoundSignalExpression *setExpression(QQmlBoundSignalExpression *); - QObject *scope() { return m_scope; } + QObject *scope() { return *m_scope; } static void subscriptionCallback(QQmlNotifierEndpoint *e, void **); - bool isEvaluating() const { return m_isEvaluating; } + bool isEvaluating() const { return m_scope.flag(); } private: QQmlBoundSignalExpression *m_expression; QQmlBoundSignalParameters *m_params; - QObject *m_scope; + // We store some flag bits in the following flag pointer. + // m_scope:flag1 - m_isEvaluating + // m_scope:flag2 - m_paramsValid + QFlagPointer m_scope; int m_index; - bool m_paramsValid : 1; - bool m_isEvaluating : 1; + + void setIsEvaluating(bool v) { m_scope.setFlagValue(v); } + void setParamsValid(bool v) { m_scope.setFlag2Value(v); } + bool paramsValid() const { return m_scope.flag2(); } }; -- cgit v1.2.3