From 83689438a95e7498579e6edb245743dc7da2d4dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20St=C3=B6neberg?= Date: Fri, 26 Jul 2024 06:05:34 +0200 Subject: [PATCH] avoid duplicated evaluation in `ProgramMemoryState::removeModifiedVars()` (#6628) Co-authored-by: Paul Fultz II --- lib/programmemory.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/programmemory.cpp b/lib/programmemory.cpp index 2619ed876b2..29ff0c6b480 100644 --- a/lib/programmemory.cpp +++ b/lib/programmemory.cpp @@ -505,9 +505,11 @@ void ProgramMemoryState::removeModifiedVars(const Token* tok) { const ProgramMemory& pm = state; auto eval = [&](const Token* cond) -> std::vector { - if (conditionIsTrue(cond, pm, *settings)) + ProgramMemory pm2 = pm; + auto result = execute(cond, pm2, *settings); + if (isTrue(result)) return {1}; - if (conditionIsFalse(cond, pm, *settings)) + if (isFalse(result)) return {0}; return {}; };