aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/adhoc-rule-buildscript.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-03-08 10:57:52 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-03-08 10:59:20 +0200
commit2ede341d59b4ab259caf808dfa65c0ac380ba347 (patch)
treea69e7b9f6a943692cc81b22cd98c8df97c1e9e19 /libbuild2/adhoc-rule-buildscript.cxx
parentc5022fa04b64a9b572cd468837b934eaf5999e1a (diff)
Improve performance of update during match for multiple targets
Diffstat (limited to 'libbuild2/adhoc-rule-buildscript.cxx')
-rw-r--r--libbuild2/adhoc-rule-buildscript.cxx14
1 files changed, 5 insertions, 9 deletions
diff --git a/libbuild2/adhoc-rule-buildscript.cxx b/libbuild2/adhoc-rule-buildscript.cxx
index fa60556..25ef1b7 100644
--- a/libbuild2/adhoc-rule-buildscript.cxx
+++ b/libbuild2/adhoc-rule-buildscript.cxx
@@ -456,17 +456,13 @@ namespace build2
// If we have any update during match prerequisites, now is the time to
// update them.
//
- // Note also that we ignore the result and whether it renders us out of
- // date, leaving it to the common execute logic in perform_update_*().
+ // Note that we ignore the result and whether it renders us out of date,
+ // leaving it to the common execute logic in perform_update_*().
+ //
+ // Note also that update_during_match() spoils prerequisite_target::data.
//
if (a == perform_update_id)
- {
- for (const prerequisite_target& pt: pts)
- {
- if ((pt.include & 2) != 0)
- update_during_match (trace, a, *pt.target);
- }
- }
+ update_during_match (trace, a, pts, 2 /* mask */);
// See if this is not update or not on a file-based target.
//