From 9340c8aae393a6d888bca6f238d4986a22d01186 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 27 Nov 2021 14:34:59 +0100 Subject: [PATCH] patterns: Fixed placed signed integers not being sign extended correctly --- plugins/libimhex/include/hex/pattern_language/ast_node.hpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/libimhex/include/hex/pattern_language/ast_node.hpp b/plugins/libimhex/include/hex/pattern_language/ast_node.hpp index 4c384655a..29f7ed65a 100644 --- a/plugins/libimhex/include/hex/pattern_language/ast_node.hpp +++ b/plugins/libimhex/include/hex/pattern_language/ast_node.hpp @@ -1454,10 +1454,6 @@ namespace hex::pl { std::visit(overloaded { [&](std::string &assignmentValue) { }, - [&](s128 assignmentValue) { - std::memcpy(&value, &assignmentValue, pattern->getSize()); - value = hex::signExtend(pattern->getSize() * 8, value); - }, [&](auto &&assignmentValue) { std::memcpy(&value, &assignmentValue, pattern->getSize()); } }, literal); } @@ -1491,6 +1487,7 @@ namespace hex::pl { } else if (dynamic_cast(pattern)) { s128 value = 0; readValue(value, pattern); + value = hex::signExtend(pattern->getSize() * 8, value); literal = value; } else if (dynamic_cast(pattern)) { if (pattern->getSize() == sizeof(u16)) {