summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2016-11-24 17:14:23 +0100
committerUlf Hermann <ulf.hermann@qt.io>2016-11-25 10:03:52 +0000
commit2937907080837fe26b41877516f5cef52a195f84 (patch)
tree0a35110a0b189f1c18a46a0d55b7762cfdf4ca8c
parent55ecedbd904ca95ec772bf231c6c5d83882e788f (diff)
Drop the return value from QScxmlDataModel::evaluateForEach()
This is an inconsistency in the public API. The bool return value is unnecessary as we pass a bool *ok, just like we do for the other evaluation methods. Change-Id: I750e5d6d39df417fec727ef6f3ec1ade5ddc2dfc Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
-rw-r--r--src/scxml/qscxmlcppdatamodel.cpp3
-rw-r--r--src/scxml/qscxmlcppdatamodel.h2
-rw-r--r--src/scxml/qscxmldatamodel.h4
-rw-r--r--src/scxml/qscxmlecmascriptdatamodel.cpp18
-rw-r--r--src/scxml/qscxmlecmascriptdatamodel.h2
-rw-r--r--src/scxml/qscxmlexecutablecontent.cpp8
-rw-r--r--src/scxml/qscxmlnulldatamodel.cpp3
-rw-r--r--src/scxml/qscxmlnulldatamodel.h2
8 files changed, 19 insertions, 23 deletions
diff --git a/src/scxml/qscxmlcppdatamodel.cpp b/src/scxml/qscxmlcppdatamodel.cpp
index bc09d65..d363c27 100644
--- a/src/scxml/qscxmlcppdatamodel.cpp
+++ b/src/scxml/qscxmlcppdatamodel.cpp
@@ -167,13 +167,12 @@ void QScxmlCppDataModel::evaluateInitialization(EvaluatorId id, bool *ok)
Q_UNREACHABLE();
}
-bool QScxmlCppDataModel::evaluateForeach(EvaluatorId id, bool *ok, ForeachLoopBody *body)
+void QScxmlCppDataModel::evaluateForeach(EvaluatorId id, bool *ok, ForeachLoopBody *body)
{
Q_UNUSED(id);
Q_UNUSED(ok);
Q_UNUSED(body);
Q_UNREACHABLE();
- return false;
}
/*!
diff --git a/src/scxml/qscxmlcppdatamodel.h b/src/scxml/qscxmlcppdatamodel.h
index fb59336..97ca636 100644
--- a/src/scxml/qscxmlcppdatamodel.h
+++ b/src/scxml/qscxmlcppdatamodel.h
@@ -66,7 +66,7 @@ public:
#ifndef Q_QDOC
void evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok) Q_DECL_OVERRIDE Q_DECL_FINAL;
void evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok) Q_DECL_OVERRIDE Q_DECL_FINAL;
- bool evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, ForeachLoopBody *body) Q_DECL_OVERRIDE Q_DECL_FINAL;
+ void evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, ForeachLoopBody *body) Q_DECL_OVERRIDE Q_DECL_FINAL;
#endif // Q_QDOC
void setScxmlEvent(const QScxmlEvent &scxmlEvent) Q_DECL_OVERRIDE Q_DECL_FINAL;
diff --git a/src/scxml/qscxmldatamodel.h b/src/scxml/qscxmldatamodel.h
index 845d8bf..9f2b921 100644
--- a/src/scxml/qscxmldatamodel.h
+++ b/src/scxml/qscxmldatamodel.h
@@ -64,7 +64,7 @@ public:
{
public:
virtual ~ForeachLoopBody();
- virtual bool run() = 0;
+ virtual void run(bool *ok) = 0;
};
public:
@@ -83,7 +83,7 @@ public:
virtual void evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0;
virtual void evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0;
virtual void evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0;
- virtual bool evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, ForeachLoopBody *body) = 0;
+ virtual void evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, ForeachLoopBody *body) = 0;
#endif // Q_QDOC
virtual void setScxmlEvent(const QScxmlEvent &event) = 0;
diff --git a/src/scxml/qscxmlecmascriptdatamodel.cpp b/src/scxml/qscxmlecmascriptdatamodel.cpp
index 32c49f0..4b0329e 100644
--- a/src/scxml/qscxmlecmascriptdatamodel.cpp
+++ b/src/scxml/qscxmlecmascriptdatamodel.cpp
@@ -469,7 +469,7 @@ void QScxmlEcmaScriptDataModel::evaluateInitialization(EvaluatorId id, bool *ok)
evaluateAssignment(id, ok);
}
-bool QScxmlEcmaScriptDataModel::evaluateForeach(EvaluatorId id, bool *ok, ForeachLoopBody *body)
+void QScxmlEcmaScriptDataModel::evaluateForeach(EvaluatorId id, bool *ok, ForeachLoopBody *body)
{
Q_D(QScxmlEcmaScriptDataModel);
Q_ASSERT(ok);
@@ -480,7 +480,7 @@ bool QScxmlEcmaScriptDataModel::evaluateForeach(EvaluatorId id, bool *ok, Foreac
if (!jsArray.isArray()) {
d->submitError(QStringLiteral("error.execution"), QStringLiteral("invalid array '%1' in %2").arg(d->string(info.array), d->string(info.context)));
*ok = false;
- return false;
+ return;
}
QString item = d->string(info.item);
@@ -490,7 +490,7 @@ bool QScxmlEcmaScriptDataModel::evaluateForeach(EvaluatorId id, bool *ok, Foreac
d->submitError(QStringLiteral("error.execution"), QStringLiteral("invalid item '%1' in %2")
.arg(d->string(info.item), d->string(info.context)));
*ok = false;
- return false;
+ return;
}
const int length = jsArray.property(QStringLiteral("length")).toInt();
@@ -502,17 +502,17 @@ bool QScxmlEcmaScriptDataModel::evaluateForeach(EvaluatorId id, bool *ok, Foreac
QJSValue currentItem = jsArray.property(static_cast<quint32>(currentIndex));
*ok = d->setProperty(item, currentItem, context);
if (!*ok)
- return false;
+ return;
if (hasIndex) {
*ok = d->setProperty(idx, currentIndex, context);
if (!*ok)
- return false;
+ return;
}
- if (!body->run())
- return false;
+ body->run(ok);
+ if (!*ok)
+ return;
}
-
- return true;
+ *ok = true;
}
/*!
diff --git a/src/scxml/qscxmlecmascriptdatamodel.h b/src/scxml/qscxmlecmascriptdatamodel.h
index b1d9f55..808830a 100644
--- a/src/scxml/qscxmlecmascriptdatamodel.h
+++ b/src/scxml/qscxmlecmascriptdatamodel.h
@@ -63,7 +63,7 @@ public:
void evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok) Q_DECL_OVERRIDE Q_DECL_FINAL;
void evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok) Q_DECL_OVERRIDE Q_DECL_FINAL;
void evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok) Q_DECL_OVERRIDE Q_DECL_FINAL;
- bool evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, ForeachLoopBody *body) Q_DECL_OVERRIDE Q_DECL_FINAL;
+ void evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, ForeachLoopBody *body) Q_DECL_OVERRIDE Q_DECL_FINAL;
#endif // Q_QDOC
void setScxmlEvent(const QScxmlEvent &event) Q_DECL_OVERRIDE;
diff --git a/src/scxml/qscxmlexecutablecontent.cpp b/src/scxml/qscxmlexecutablecontent.cpp
index 5df8b1f..9fbcd15 100644
--- a/src/scxml/qscxmlexecutablecontent.cpp
+++ b/src/scxml/qscxmlexecutablecontent.cpp
@@ -216,11 +216,9 @@ const InstructionId *QScxmlExecutionEngine::step(const InstructionId *ip, bool *
, loopStart(loopStart)
{}
- bool run() Q_DECL_OVERRIDE
+ void run(bool *ok) Q_DECL_OVERRIDE
{
- bool ok = true;
- engine->step(loopStart, &ok);
- return ok;
+ engine->step(loopStart, ok);
}
};
@@ -229,7 +227,7 @@ const InstructionId *QScxmlExecutionEngine::step(const InstructionId *ip, bool *
const InstructionId *loopStart = _foreach->blockstart();
ip += _foreach->size();
LoopBody body(this, loopStart);
- *ok = dataModel->evaluateForeach(_foreach->doIt, ok, &body) && *ok;
+ dataModel->evaluateForeach(_foreach->doIt, ok, &body);
return ip;
}
diff --git a/src/scxml/qscxmlnulldatamodel.cpp b/src/scxml/qscxmlnulldatamodel.cpp
index 08a9333..35f1b91 100644
--- a/src/scxml/qscxmlnulldatamodel.cpp
+++ b/src/scxml/qscxmlnulldatamodel.cpp
@@ -203,7 +203,7 @@ void QScxmlNullDataModel::evaluateInitialization(QScxmlExecutableContent::Evalua
QStringLiteral("Cannot initialize values on a null data model"));
}
-bool QScxmlNullDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, ForeachLoopBody *body)
+void QScxmlNullDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, ForeachLoopBody *body)
{
Q_UNUSED(id);
Q_UNUSED(body);
@@ -211,7 +211,6 @@ bool QScxmlNullDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId i
QScxmlStateMachinePrivate::get(stateMachine())->submitError(
QStringLiteral("error.execution"),
QStringLiteral("Cannot run foreach on a null data model"));
- return false;
}
/*!
diff --git a/src/scxml/qscxmlnulldatamodel.h b/src/scxml/qscxmlnulldatamodel.h
index e4f7942..f5aeb26 100644
--- a/src/scxml/qscxmlnulldatamodel.h
+++ b/src/scxml/qscxmlnulldatamodel.h
@@ -62,7 +62,7 @@ public:
void evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok) Q_DECL_OVERRIDE Q_DECL_FINAL;
void evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok) Q_DECL_OVERRIDE Q_DECL_FINAL;
void evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok) Q_DECL_OVERRIDE Q_DECL_FINAL;
- bool evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, ForeachLoopBody *body) Q_DECL_OVERRIDE Q_DECL_FINAL;
+ void evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, ForeachLoopBody *body) Q_DECL_OVERRIDE Q_DECL_FINAL;
#endif // Q_QDOC
void setScxmlEvent(const QScxmlEvent &event) Q_DECL_OVERRIDE;