diff --git a/lib/libimhex/source/data_processor/node.cpp b/lib/libimhex/source/data_processor/node.cpp index db0052e30..782b0131c 100644 --- a/lib/libimhex/source/data_processor/node.cpp +++ b/lib/libimhex/source/data_processor/node.cpp @@ -99,6 +99,9 @@ namespace hex::dp { if (attribute.getIOType() != Attribute::IOType::Out) throwNodeError("Tried to set output data of an input attribute!"); + if (attribute.getType() != Attribute::Type::Buffer) + throwNodeError("Tried to set buffer on non-buffer attribute!"); + attribute.getOutputData() = { data.begin(), data.end() }; } @@ -111,6 +114,9 @@ namespace hex::dp { if (attribute.getIOType() != Attribute::IOType::Out) throwNodeError("Tried to set output data of an input attribute!"); + if (attribute.getType() != Attribute::Type::Integer) + throwNodeError("Tried to set integer on non-integer attribute!"); + std::vector buffer(sizeof(integer), 0); std::memcpy(buffer.data(), &integer, sizeof(integer)); @@ -126,6 +132,9 @@ namespace hex::dp { if (attribute.getIOType() != Attribute::IOType::Out) throwNodeError("Tried to set output data of an input attribute!"); + if (attribute.getType() != Attribute::Type::Float) + throwNodeError("Tried to set float on non-float attribute!"); + std::vector buffer(sizeof(floatingPoint), 0); std::memcpy(buffer.data(), &floatingPoint, sizeof(floatingPoint)); diff --git a/plugins/builtin/source/content/data_processor_nodes.cpp b/plugins/builtin/source/content/data_processor_nodes.cpp index 8b7579184..eb1f40528 100644 --- a/plugins/builtin/source/content/data_processor_nodes.cpp +++ b/plugins/builtin/source/content/data_processor_nodes.cpp @@ -534,7 +534,7 @@ namespace hex::plugin::builtin { i128 output = 0; if (input.empty() || input.size() > sizeof(output)) - throwNodeError("Buffer is empty or bigger than 64 bits"); + throwNodeError("Buffer is empty or bigger than 128 bits"); std::memcpy(&output, input.data(), input.size()); @@ -691,7 +691,7 @@ namespace hex::plugin::builtin { void process() override { const auto &input = this->getFloatOnInput(0); - this->setIntegerOnOutput(1, std::ceil(input)); + this->setFloatOnOutput(1, std::ceil(input)); } }; @@ -702,7 +702,7 @@ namespace hex::plugin::builtin { void process() override { const auto &input = this->getFloatOnInput(0); - this->setIntegerOnOutput(1, std::floor(input)); + this->setFloatOnOutput(1, std::floor(input)); } }; @@ -713,7 +713,7 @@ namespace hex::plugin::builtin { void process() override { const auto &input = this->getFloatOnInput(0); - this->setIntegerOnOutput(1, std::round(input)); + this->setFloatOnOutput(1, std::round(input)); } };