aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/types/qqmlconnections.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2013-07-01 08:48:41 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-07-03 13:22:25 +0200
commit06eaeb0ac8d861cf3e60b11a8fbbabdeef1d6759 (patch)
tree825fb27485c376d0b83e8dfbcd20c852f2dd525c /src/qml/types/qqmlconnections.cpp
parentb30657647a7f816a2945302b3569b882d7ac6b72 (diff)
Get rid of the signal expression rewriter
This replaces the entire rewriter with more or less: expressionToEval = "(function(<named params here>) { " + expr + " } )" This also fixes crashes at run-time when the signal rewriter was executed from the loader thread and tried to use a v4 identifier hash with the same engine that's also in the main thread. Change-Id: Ib1e4927d330706a593411fbff64ed3da1e23d0e0 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/types/qqmlconnections.cpp')
-rw-r--r--src/qml/types/qqmlconnections.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/qml/types/qqmlconnections.cpp b/src/qml/types/qqmlconnections.cpp
index 93df0842fe..725c169529 100644
--- a/src/qml/types/qqmlconnections.cpp
+++ b/src/qml/types/qqmlconnections.cpp
@@ -237,7 +237,7 @@ QQmlConnectionsParser::compile(const QList<QQmlCustomParserProperty> &props)
QQmlScript::Variant v = qvariant_cast<QQmlScript::Variant>(value);
if (v.isScript()) {
ds << propName;
- ds << rewriteSignalHandler(v, propName).toUtf8();
+ ds << v.asScript();
ds << propLine;
ds << propColumn;
} else {
@@ -270,7 +270,7 @@ void QQmlConnections::connectSignals()
while (!ds.atEnd()) {
QString propName;
ds >> propName;
- QByteArray script;
+ QString script;
ds >> script;
int line;
ds >> line;
@@ -295,7 +295,7 @@ void QQmlConnections::connectSignals()
QQmlBoundSignalExpression *expression = ctxtdata ?
new QQmlBoundSignalExpression(target(), signalIndex,
ctxtdata, this, script,
- true, location, line, column) : 0;
+ location, line, column) : 0;
signal->takeExpression(expression);
d->boundsignals += signal;
} else {