diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2011-09-18 02:07:35 (GMT) |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2011-10-18 22:01:48 (GMT) |
commit | 5ff5891f5bed923b983c0f5a23c16d988d55f30e (patch) | |
tree | d882ee9f327e7ab138429dcee85625b88d7fa915 /src/state.cc | |
parent | afbe2185a3bbd2453d6b1c27ee8f7c1cce6371a3 (diff) | |
download | Ninja-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.cc | 6 |
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; +} |