diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-07-01 08:48:41 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-03 13:22:25 +0200 |
commit | 06eaeb0ac8d861cf3e60b11a8fbbabdeef1d6759 (patch) | |
tree | 825fb27485c376d0b83e8dfbcd20c852f2dd525c /src/qml/types/qqmlconnections.cpp | |
parent | b30657647a7f816a2945302b3569b882d7ac6b72 (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.cpp | 6 |
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 { |