1
0
mirror of synced 2025-01-29 19:17:28 +01:00

fix: Data processor recursion detector triggering too soon

This commit is contained in:
WerWolv 2023-10-19 23:34:05 +02:00
parent b4ee02b725
commit c9cd7ad4a6
2 changed files with 7 additions and 0 deletions

View File

@ -109,6 +109,10 @@ namespace hex::dp {
throwNodeError("Recursion detected!");
}
void unmarkInputProcessed(u32 index) {
this->m_processedInputs.erase(index);
}
protected:
[[noreturn]] void throwNodeError(const std::string &message) {
throw NodeError { this, message };

View File

@ -29,6 +29,7 @@ namespace hex::dp {
markInputProcessed(index);
attribute->getParentNode()->process();
unmarkInputProcessed(index);
auto &outputData = attribute->getOutputData();
@ -48,6 +49,7 @@ namespace hex::dp {
markInputProcessed(index);
attribute->getParentNode()->process();
unmarkInputProcessed(index);
return attribute->getOutputData();
} else {
@ -74,6 +76,7 @@ namespace hex::dp {
markInputProcessed(index);
attribute->getParentNode()->process();
unmarkInputProcessed(index);
return attribute->getOutputData();
} else {