diff options
Diffstat (limited to 'build2/operation.cxx')
-rw-r--r-- | build2/operation.cxx | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/build2/operation.cxx b/build2/operation.cxx index 698edbb..a43e20a 100644 --- a/build2/operation.cxx +++ b/build2/operation.cxx @@ -191,20 +191,9 @@ namespace build2 action_target& at (ts[j]); const target& t (at.as_target ()); - // Finish matching targets that we have started. Note that we use the - // state for the "final" action that will be executed and not our - // action. Failed that, we may fail to find a match for a "stronger" - // action but will still get unchanged for the original one. - // - target_state s; - if (j < i) - { - match (a, t, false); - s = t.serial_state (false); - } - else - s = target_state::postponed; - + target_state s (j < i + ? match (a, t, false) + : target_state::postponed); switch (s) { case target_state::postponed: @@ -369,7 +358,7 @@ namespace build2 { const target& t (at.as_target ()); - switch ((at.state = t.executed_state (false))) + switch ((at.state = t.executed_state (a, false))) { case target_state::unknown: { |