summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2012-02-22 20:59:14 (GMT)
committerEvan Martin <martine@danga.com>2012-02-22 20:59:14 (GMT)
commitbf5ddfcf98baaabd47a0eda02027c24305bbaf62 (patch)
tree0671a676ccbc1df8b16e02860ea1cc26dd220ccc /src
parente8450027bd999046c3972d391b9d52bd7b8492b9 (diff)
parent6cf2f5a98608ad1aeeae791fbba6bfacbf135538 (diff)
downloadNinja-bf5ddfcf98baaabd47a0eda02027c24305bbaf62.zip
Ninja-bf5ddfcf98baaabd47a0eda02027c24305bbaf62.tar.gz
Ninja-bf5ddfcf98baaabd47a0eda02027c24305bbaf62.tar.bz2
Merge pull request #223 from pcc/restat-clean-manifest
Do not reload the manifest if a restat cleans it while being rebuilt
Diffstat (limited to 'src')
-rw-r--r--src/ninja.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/ninja.cc b/src/ninja.cc
index 6cc2276..7f07053 100644
--- a/src/ninja.cc
+++ b/src/ninja.cc
@@ -150,7 +150,12 @@ bool RebuildManifest(State* state, const BuildConfig& config,
if (manifest_builder.AlreadyUpToDate())
return false; // Not an error, but we didn't rebuild.
- return manifest_builder.Build(err);
+ if (!manifest_builder.Build(err))
+ return false;
+
+ // The manifest was only rebuilt if it is now dirty (it may have been cleaned
+ // by a restat).
+ return node->dirty();
}
bool CollectTargetsFromArgs(State* state, int argc, char* argv[],