summaryrefslogtreecommitdiffstats
path: root/src/build.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/build.cc')
-rw-r--r--src/build.cc11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/build.cc b/src/build.cc
index ae6ebbb..25d3ba9 100644
--- a/src/build.cc
+++ b/src/build.cc
@@ -337,14 +337,9 @@ void Plan::CleanNode(BuildLog* build_log, Node* node) {
if (!(*ni)->dirty_)
continue;
- // RecomputeOutputDirty will not modify dirty_ if the output is clean.
- (*ni)->dirty_ = false;
-
- // Since we know that all non-order-only inputs are clean, we can pass
- // "false" as the "dirty" argument here.
- (*ei)->RecomputeOutputDirty(build_log, most_recent_input, false,
- command, *ni);
- if ((*ni)->dirty_) {
+ if ((*ei)->RecomputeOutputDirty(build_log, most_recent_input, command,
+ *ni)) {
+ (*ni)->dirty_ = true;
all_outputs_clean = false;
} else {
CleanNode(build_log, *ni);