aboutsummaryrefslogtreecommitdiff
path: root/build/algorithm.ixx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-07-21 18:20:33 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-07-22 12:26:34 +0200
commit34e5a2da18f76c7d7de79a5c12b0e85ee89c4095 (patch)
tree3e825e3883bc1ed083b0c33afa30c74c95dbef1e /build/algorithm.ixx
parenta1cec9e0df14f3c1a833e2a447b5324ff9c430d3 (diff)
Fix postponed re-examination logic
Now postponed takes precedence over changed.
Diffstat (limited to 'build/algorithm.ixx')
-rw-r--r--build/algorithm.ixx5
1 files changed, 4 insertions, 1 deletions
diff --git a/build/algorithm.ixx b/build/algorithm.ixx
index 4581d5b..7849713 100644
--- a/build/algorithm.ixx
+++ b/build/algorithm.ixx
@@ -108,7 +108,10 @@ namespace build
inline target_state
execute (action a, target& t)
{
- t.dependents--;
+ // This can happen when we re-examine the state after being postponed.
+ //
+ if (t.dependents != 0)
+ t.dependents--;
switch (target_state ts = t.state ())
{