diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-07-15 08:21:56 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-07-15 08:21:56 (GMT) |
commit | 9b427652044114a1a77f7c1a32526d570f2bb3e8 (patch) | |
tree | 8d93626246c3a3f9a096ad8820031ce5ea3ee08f /src/declarative/qml/qmlexpression.cpp | |
parent | c1f79fb0b4b778a2f41204aa62711060a3b021fc (diff) | |
download | Qt-9b427652044114a1a77f7c1a32526d570f2bb3e8.zip Qt-9b427652044114a1a77f7c1a32526d570f2bb3e8.tar.gz Qt-9b427652044114a1a77f7c1a32526d570f2bb3e8.tar.bz2 |
Revert "Use a function object when evaluating bindings"
Turns out this simple approach doesn't work. Fortunately we have a volunteer to do it properly.
This reverts commit 958dc50e2b0fe2e875a704554438be75907ed3c5.
Diffstat (limited to 'src/declarative/qml/qmlexpression.cpp')
-rw-r--r-- | src/declarative/qml/qmlexpression.cpp | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/declarative/qml/qmlexpression.cpp b/src/declarative/qml/qmlexpression.cpp index 3d8ee37..84352b8 100644 --- a/src/declarative/qml/qmlexpression.cpp +++ b/src/declarative/qml/qmlexpression.cpp @@ -52,17 +52,17 @@ QT_BEGIN_NAMESPACE DEFINE_BOOL_CONFIG_OPTION(qmlDebugger, QML_DEBUGGER) QmlExpressionPrivate::QmlExpressionPrivate(QmlExpression *b) -: q(b), ctxt(0), expressionFunctionValid(false), sseData(0), proxy(0), me(0), trackChange(false), line(-1), id(0), log(0) +: q(b), ctxt(0), sseData(0), proxy(0), me(0), trackChange(false), line(-1), id(0), log(0) { } QmlExpressionPrivate::QmlExpressionPrivate(QmlExpression *b, void *expr, QmlRefCount *rc) -: q(b), ctxt(0), expressionFunctionValid(false), sse((const char *)expr, rc), sseData(0), proxy(0), me(0), trackChange(true), line(-1), id(0), log(0) +: q(b), ctxt(0), sse((const char *)expr, rc), sseData(0), proxy(0), me(0), trackChange(true), line(-1), id(0), log(0) { } QmlExpressionPrivate::QmlExpressionPrivate(QmlExpression *b, const QString &expr) -: q(b), ctxt(0), expression(expr), expressionFunctionValid(false), sseData(0), proxy(0), me(0), trackChange(true), line(-1), id(0), log(0) +: q(b), ctxt(0), expression(expr), sseData(0), proxy(0), me(0), trackChange(true), line(-1), id(0), log(0) { } @@ -177,8 +177,6 @@ void QmlExpression::setExpression(const QString &expression) delete d->proxy; d->proxy = 0; d->expression = expression; - d->expressionFunctionValid = false; - d->expressionFunction = QScriptValue(); d->sse.clear(); } @@ -236,14 +234,8 @@ QVariant QmlExpressionPrivate::evalQtScript() for (int i = ctxtPriv->scopeChain.size() - 1; i > -1; --i) scriptEngine->currentContext()->pushScope(ctxtPriv->scopeChain.at(i)); - if (!expressionFunctionValid) { - expressionFunction = - scriptEngine->evaluate("function() {" +expression+"}", - fileName.toString(), line); - expressionFunctionValid = true; - } - - QScriptValue svalue = expressionFunction.call(); + QScriptValue svalue = + scriptEngine->evaluate(expression, fileName.toString(), line); if (scriptEngine->hasUncaughtException()) { if (scriptEngine->uncaughtException().isError()){ |