From d19bfb00457eb9ef49b44d8983f322eb5cce5da7 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 18 Dec 2025 17:43:34 -0500 Subject: [PATCH] Avoid short circuiting in `Worker::removeGoal` We have to call into both branches no matter what. --- src/libstore/build/worker.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libstore/build/worker.cc b/src/libstore/build/worker.cc index 593319d03..2be84db64 100644 --- a/src/libstore/build/worker.cc +++ b/src/libstore/build/worker.cc @@ -162,7 +162,9 @@ template static bool removeGoal(std::shared_ptr goal, typename DerivedPathMap>>::ChildNode & node) { - return removeGoal(goal, node.value) || removeGoal(goal, node.childMap); + bool valueKeep = removeGoal(goal, node.value); + bool childMapKeep = removeGoal(goal, node.childMap); + return valueKeep || childMapKeep; } void Worker::removeGoal(GoalPtr goal)