diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2017-03-15 16:22:18 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2017-11-10 12:42:28 +0000 |
commit | 3d23818472e371745f4ad4bd4b6c92de3d119e34 (patch) | |
tree | 48ca0b1186ef5b85655355a05552ac559b44d8ee /src | |
parent | 113b502b194d6d7573b9f86f400bdf481e98cf74 (diff) |
Output a better warning when runtime-loading malformed SCXML
The document might technically have a root element. We might not be able
to read it, though. Also, output all errors without quotes.
Change-Id: I8133e322e452ea0c3d079b5cbe23aed2f2952b3e
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/scxml/qscxmlcompiler.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/scxml/qscxmlcompiler.cpp b/src/scxml/qscxmlcompiler.cpp index 626015b..f259eee 100644 --- a/src/scxml/qscxmlcompiler.cpp +++ b/src/scxml/qscxmlcompiler.cpp @@ -685,7 +685,7 @@ QScxmlScxmlService *invokeDynamicScxmlService(const QString &sourceUrl, if (!compiler.errors().isEmpty()) { const auto errors = compiler.errors(); for (const QScxmlError &error : errors) - qWarning() << error.toString(); + qWarning().noquote() << error.toString(); return Q_NULLPTR; } @@ -694,7 +694,7 @@ QScxmlScxmlService *invokeDynamicScxmlService(const QString &sourceUrl, Q_ASSERT(!compiler.errors().isEmpty()); const auto errors = compiler.errors(); for (const QScxmlError &error : errors) - qWarning() << error.toString(); + qWarning().noquote() << error.toString(); return Q_NULLPTR; } @@ -847,7 +847,12 @@ void QScxmlCompilerPrivate::instantiateDataModel(QScxmlStateMachine *stateMachin #ifdef BUILD_QSCXMLC Q_UNUSED(stateMachine) #else - auto doc = scxmlDocument(); + if (!m_errors.isEmpty()) { + qWarning() << "SCXML document has errors"; + return; + } + + auto doc = m_doc.data(); auto root = doc ? doc->root : Q_NULLPTR; if (root == Q_NULLPTR) { qWarning() << "SCXML document has no root element"; |