summaryrefslogtreecommitdiffstats
path: root/src/state.cc
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2011-09-18 02:07:35 (GMT)
committerPeter Collingbourne <peter@pcc.me.uk>2011-10-18 22:01:48 (GMT)
commit5ff5891f5bed923b983c0f5a23c16d988d55f30e (patch)
treed882ee9f327e7ab138429dcee85625b88d7fa915 /src/state.cc
parentafbe2185a3bbd2453d6b1c27ee8f7c1cce6371a3 (diff)
downloadNinja-5ff5891f5bed923b983c0f5a23c16d988d55f30e.zip
Ninja-5ff5891f5bed923b983c0f5a23c16d988d55f30e.tar.gz
Ninja-5ff5891f5bed923b983c0f5a23c16d988d55f30e.tar.bz2
Split Node::dirty_ into two flags: Node::dirty_ and Edge::outputs_ready_
dirty_ is intended to remain static during the build (unless a restat occurs), while outputs_ready_ reflects the dynamic state of the build.
Diffstat (limited to 'src/state.cc')
-rw-r--r--src/state.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/state.cc b/src/state.cc
index e1fe675..87d824b 100644
--- a/src/state.cc
+++ b/src/state.cc
@@ -106,3 +106,9 @@ vector<Node*> State::RootNodes(string* err) {
vector<Node*> State::DefaultNodes(string* err) {
return defaults_.empty() ? RootNodes(err) : defaults_;
}
+
+void State::Reset() {
+ stat_cache_.Invalidate();
+ for (vector<Edge*>::iterator e = edges_.begin(); e != edges_.end(); ++e)
+ (*e)->outputs_ready_ = false;
+}