aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--node/executionnode.h2
-rw-r--r--node/mergenode.cpp6
-rw-r--r--node/paintnode.cpp3
3 files changed, 9 insertions, 2 deletions
diff --git a/node/executionnode.h b/node/executionnode.h
index 53ea83b..d1a44c4 100644
--- a/node/executionnode.h
+++ b/node/executionnode.h
@@ -18,7 +18,7 @@ public:
NOTHING_UNDERSTOOD,
NO_DICE_TO_ROLL,
TOO_MANY_DICE,NO_VARIBALE,
- INVALID_INDEX,UNEXPECTED_CHARACTER};
+ INVALID_INDEX,UNEXPECTED_CHARACTER, NO_PREVIOUS_ERROR};
/**
* @brief ExecutionNode
*/
diff --git a/node/mergenode.cpp b/node/mergenode.cpp
index c79521b..f866db6 100644
--- a/node/mergenode.cpp
+++ b/node/mergenode.cpp
@@ -28,6 +28,12 @@ MergeNode::MergeNode()
}
void MergeNode::run(ExecutionNode* previous)
{
+ if(nullptr == previous)
+ {
+ m_errors.insert(ExecutionNode::NO_PREVIOUS_ERROR, QObject::tr("No previous node before Merge operator"));
+ return;
+ }
+
m_previousNode = previous;
m_result->setPrevious(previous->getResult());
ExecutionNode* previousLast =nullptr;
diff --git a/node/paintnode.cpp b/node/paintnode.cpp
index 79aee60..8fea3f4 100644
--- a/node/paintnode.cpp
+++ b/node/paintnode.cpp
@@ -69,6 +69,7 @@ void PainterNode::run(ExecutionNode* previous)
m_previousNode = previous;
if(nullptr==previous)
{
+ m_errors.insert(ExecutionNode::NO_PREVIOUS_ERROR, QObject::tr("No previous node before Paint operator"));
return;
}
Result* previousResult = previous->getResult();
@@ -97,7 +98,7 @@ void PainterNode::run(ExecutionNode* previous)
}
Result* PainterNode::getResult()
{
- return m_previousNode->getResult();
+ return (nullptr != m_previousNode) ? m_previousNode->getResult() : nullptr ;
}
QString PainterNode::toString(bool wl) const