aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlbinding.cpp
diff options
context:
space:
mode:
authorMatthew Vogt <matthew.vogt@nokia.com>2012-08-09 13:26:32 +1000
committerQt by Nokia <qt-info@nokia.com>2012-08-16 01:13:50 +0200
commit6aeff1b5429ca97af052a7a172369585382096e8 (patch)
tree68347d53f95cbcb6162a0a4f2e3c198a77f455b1 /src/qml/qml/qqmlbinding.cpp
parent6096f72e8cf23522cf675d6142492c58401e68b0 (diff)
Reduce memory consumption of source coordinates
Reduce memory consumption by storing source location coordinates as 16-bit variables (in run-time structures). Also modify qmlmin to restrict line lengths so that the column bound is not normally exceeded. Change-Id: I08605626ffbdf081b6da2aea1116bdfe24998572 Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
Diffstat (limited to 'src/qml/qml/qqmlbinding.cpp')
-rw-r--r--src/qml/qml/qqmlbinding.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/qml/qml/qqmlbinding.cpp b/src/qml/qml/qqmlbinding.cpp
index 5860cbe19d..f5f0f49ddd 100644
--- a/src/qml/qml/qqmlbinding.cpp
+++ b/src/qml/qml/qqmlbinding.cpp
@@ -72,7 +72,7 @@ QQmlBinding::Identifier QQmlBinding::Invalid = -1;
QQmlBinding *
QQmlBinding::createBinding(Identifier id, QObject *obj, QQmlContext *ctxt,
- const QString &url, int lineNumber)
+ const QString &url, quint16 lineNumber)
{
if (id < 0)
return 0;
@@ -102,7 +102,7 @@ static QQmlJavaScriptExpression::VTable QQmlBinding_jsvtable = {
QQmlBinding::QQmlBinding(const QString &str, QObject *obj, QQmlContext *ctxt)
: QQmlJavaScriptExpression(&QQmlBinding_jsvtable), QQmlAbstractBinding(Binding),
- m_lineNumber(-1), m_columnNumber(-1)
+ m_lineNumber(0), m_columnNumber(0)
{
setNotifyOnValueChanged(true);
QQmlAbstractExpression::setContext(QQmlContextData::get(ctxt));
@@ -164,7 +164,7 @@ QQmlBinding::QQmlBinding(const QQmlScriptString &script, QObject *obj, QQmlConte
QQmlBinding::QQmlBinding(const QString &str, QObject *obj, QQmlContextData *ctxt)
: QQmlJavaScriptExpression(&QQmlBinding_jsvtable), QQmlAbstractBinding(Binding),
- m_lineNumber(-1), m_columnNumber(-1)
+ m_lineNumber(0), m_columnNumber(0)
{
setNotifyOnValueChanged(true);
QQmlAbstractExpression::setContext(ctxt);
@@ -179,9 +179,9 @@ QQmlBinding::QQmlBinding(const QString &str, QObject *obj, QQmlContextData *ctxt
QQmlBinding::QQmlBinding(const QString &str, bool isRewritten, QObject *obj,
QQmlContextData *ctxt,
- const QString &url, int lineNumber, int columnNumber)
+ const QString &url, quint16 lineNumber, quint16 columnNumber)
: QQmlJavaScriptExpression(&QQmlBinding_jsvtable), QQmlAbstractBinding(Binding),
- m_lineNumber(-1), m_columnNumber(-1)
+ m_url(url), m_lineNumber(lineNumber), m_columnNumber(columnNumber)
{
setNotifyOnValueChanged(true);
QQmlAbstractExpression::setContext(ctxt);
@@ -195,12 +195,9 @@ QQmlBinding::QQmlBinding(const QString &str, bool isRewritten, QObject *obj,
code = rewriteBinding(str);
}
- m_url = url;
- m_lineNumber = lineNumber;
- m_columnNumber = columnNumber;
m_expression = str.toUtf8();
- v8function = evalFunction(ctxt, obj, code, url, lineNumber);
+ v8function = evalFunction(ctxt, obj, code, url, m_lineNumber);
}
/*!
@@ -212,7 +209,7 @@ QQmlBinding::QQmlBinding(const QString &str, bool isRewritten, QObject *obj,
new QQmlBinding(&function, scope, ctxt);
*/
QQmlBinding::QQmlBinding(void *functionPtr, QObject *obj, QQmlContextData *ctxt,
- const QString &url, int lineNumber, int columnNumber)
+ const QString &url, quint16 lineNumber, quint16 columnNumber)
: QQmlJavaScriptExpression(&QQmlBinding_jsvtable), QQmlAbstractBinding(Binding),
m_url(url), m_lineNumber(lineNumber), m_columnNumber(columnNumber)
{
@@ -252,13 +249,16 @@ void QQmlBinding::update(QQmlPropertyPrivate::WriteFlags flags)
if (QQmlData::wasDeleted(object()))
return;
+ int lineNo = qmlSourceCoordinate(m_lineNumber);
+ int columnNo = qmlSourceCoordinate(m_columnNumber);
+
QQmlTrace trace("General Binding Update");
trace.addDetail("URL", m_url);
- trace.addDetail("Line", m_lineNumber);
- trace.addDetail("Column", m_columnNumber);
+ trace.addDetail("Line", lineNo);
+ trace.addDetail("Column", columnNo);
if (!updatingFlag()) {
- QQmlBindingProfiler prof(m_url, m_lineNumber, m_columnNumber, QQmlProfilerService::QmlBinding);
+ QQmlBindingProfiler prof(m_url, lineNo, columnNo, QQmlProfilerService::QmlBinding);
setUpdatingFlag(true);
QQmlAbstractExpression::DeleteWatcher watcher(this);