From 88d26293e08647361824622765f6f3c9cafde577 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 22 Jun 2015 09:39:14 +0200 Subject: Remove prerequisite rewriting from inject_parent_fsdir() --- build/algorithm.cxx | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) (limited to 'build/algorithm.cxx') diff --git a/build/algorithm.cxx b/build/algorithm.cxx index 2529e13..abae023 100644 --- a/build/algorithm.cxx +++ b/build/algorithm.cxx @@ -206,26 +206,11 @@ namespace build if (!d.sub (out_root) || d == out_root) return; - prerequisite& p ( - s.prerequisites.insert ( - fsdir::static_type, - d, - string (), - nullptr, - s, - trace).first); - - // This function is normally called from match() which means - // it can be called several times if we are performing several - // operations (e.g., clean update). Since it is a fairly common - // pattern to add this prerequisite at the end, do a quick check - // if the last prerequisite is already what we are about to add. - // - if (!t.prerequisites.empty () && &t.prerequisites.back ().get () == &p) - return; + level5 ([&]{trace << "for " << t;}); - level5 ([&]{trace << "injecting prerequisite for " << t;}); - t.prerequisites.emplace_back (p); + fsdir& dt (search (d, string (), nullptr, &s)); + match (a, dt); + t.prerequisite_targets.emplace_back (&dt); } target_state -- cgit v1.1