aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/v8
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2012-02-14 13:10:29 +0000
committerQt by Nokia <qt-info@nokia.com>2012-02-20 14:48:24 +0100
commit38dde4b60fcc597d8f24d6c20426eb68b1f615e0 (patch)
treeb2f0a27f427ac47e6912ab0975de508d15937b5c /src/declarative/qml/v8
parent68833ffdfc0d17f62a4ca693a2c1cdf3b28075de (diff)
Reduce size of QDeclarativeJavaScriptExpression
Change-Id: Ie1242d18ef10e5cbd9c1cab27c31ad3f6d9281fd Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Diffstat (limited to 'src/declarative/qml/v8')
-rw-r--r--src/declarative/qml/v8/qv8bindings.cpp18
-rw-r--r--src/declarative/qml/v8/qv8bindings_p.h12
2 files changed, 19 insertions, 11 deletions
diff --git a/src/declarative/qml/v8/qv8bindings.cpp b/src/declarative/qml/v8/qv8bindings.cpp
index 3af9baa9f6..e0f196b955 100644
--- a/src/declarative/qml/v8/qv8bindings.cpp
+++ b/src/declarative/qml/v8/qv8bindings.cpp
@@ -53,8 +53,13 @@
QT_BEGIN_NAMESPACE
+static QDeclarativeJavaScriptExpression::VTable QV8Bindings_Binding_jsvtable = {
+ QV8Bindings::Binding::expressionIdentifier,
+ QV8Bindings::Binding::expressionChanged
+};
+
QV8Bindings::Binding::Binding()
-: object(0), parent(0)
+: QDeclarativeJavaScriptExpression(&QV8Bindings_Binding_jsvtable), object(0), parent(0)
{
}
@@ -147,14 +152,17 @@ void QV8Bindings::Binding::update(QDeclarativePropertyPrivate::WriteFlags flags)
}
}
-QString QV8Bindings::Binding::expressionIdentifier()
+QString QV8Bindings::Binding::expressionIdentifier(QDeclarativeJavaScriptExpression *e)
{
- return parent->url.toString() + QLatin1String(":") + QString::number(instruction->line);
+ Binding *This = static_cast<Binding *>(e);
+ return This->parent->url.toString() + QLatin1String(":") +
+ QString::number(This->instruction->line);
}
-void QV8Bindings::Binding::expressionChanged()
+void QV8Bindings::Binding::expressionChanged(QDeclarativeJavaScriptExpression *e)
{
- update(QDeclarativePropertyPrivate::DontRemoveBinding);
+ Binding *This = static_cast<Binding *>(e);
+ This->update(QDeclarativePropertyPrivate::DontRemoveBinding);
}
void QV8Bindings::Binding::destroy()
diff --git a/src/declarative/qml/v8/qv8bindings_p.h b/src/declarative/qml/v8/qv8bindings_p.h
index 4c2584d540..dd410dc048 100644
--- a/src/declarative/qml/v8/qv8bindings_p.h
+++ b/src/declarative/qml/v8/qv8bindings_p.h
@@ -81,9 +81,6 @@ public:
// Inherited from QDeclarativeAbstractExpression
virtual void refresh();
-private:
- Q_DISABLE_COPY(QV8Bindings)
-
struct Binding : public QDeclarativeJavaScriptExpression,
public QDeclarativeAbstractBinding {
Binding();
@@ -91,9 +88,9 @@ private:
void update() { QDeclarativeAbstractBinding::update(); }
void refresh();
- // Inherited from QDeclarativeJavaScriptExpression
- inline virtual QString expressionIdentifier();
- virtual void expressionChanged();
+ // "Inherited" from QDeclarativeJavaScriptExpression
+ static QString expressionIdentifier(QDeclarativeJavaScriptExpression *);
+ static void expressionChanged(QDeclarativeJavaScriptExpression *);
// Inherited from QDeclarativeAbstractBinding
virtual void setEnabled(bool, QDeclarativePropertyPrivate::WriteFlags flags);
@@ -114,6 +111,9 @@ private:
inline void setUpdatingFlag(bool v) { instruction.setFlag2Value(v); }
};
+private:
+ Q_DISABLE_COPY(QV8Bindings)
+
QUrl url;
int bindingsCount;
Binding *bindings;