From 307fad7e813770c8f2a6236828b26cd14ddc57aa Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Mon, 27 Jul 2009 13:48:14 +1000 Subject: Make sure we pass through a line number for evaluating bindings. Also, don't convert URL to string each time we call evaluate. --- src/declarative/qml/qmlcompiler.cpp | 1 + src/declarative/qml/qmlexpression.cpp | 4 ++-- src/declarative/qml/qmlexpression_p.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp index f0473f5..9c9a7bd 100644 --- a/src/declarative/qml/qmlcompiler.cpp +++ b/src/declarative/qml/qmlcompiler.cpp @@ -2088,6 +2088,7 @@ void QmlCompiler::genBindingAssignment(QmlParser::Value *binding, store.assignBinding.value = dataRef; store.assignBinding.context = ref.bindingContext.stack; store.assignBinding.owner = ref.bindingContext.owner; + store.line = prop->location.end.line; output->bytecode << store; } diff --git a/src/declarative/qml/qmlexpression.cpp b/src/declarative/qml/qmlexpression.cpp index ea0e9aa..e88766c 100644 --- a/src/declarative/qml/qmlexpression.cpp +++ b/src/declarative/qml/qmlexpression.cpp @@ -257,7 +257,7 @@ QVariant QmlExpressionPrivate::evalQtScript() QmlRewrite::RewriteBinding rewriteBinding; const QString code = rewriteBinding(expression); - expressionFunction = scriptEngine->evaluate(code, fileName.toString(), line); + expressionFunction = scriptEngine->evaluate(code, fileName, line); expressionFunctionValid = true; } @@ -421,7 +421,7 @@ void QmlExpression::setTrackChange(bool trackChange) void QmlExpression::setSourceLocation(const QUrl &fileName, int line) { Q_D(QmlExpression); - d->fileName = fileName; + d->fileName = fileName.toString(); d->line = line; } diff --git a/src/declarative/qml/qmlexpression_p.h b/src/declarative/qml/qmlexpression_p.h index 41b7749..a20ead4 100644 --- a/src/declarative/qml/qmlexpression_p.h +++ b/src/declarative/qml/qmlexpression_p.h @@ -83,7 +83,7 @@ public: QObject *me; bool trackChange; - QUrl fileName; + QString fileName; int line; quint32 id; -- cgit v0.12