From 3a71bffd5680d64d19c914aa9dbf1a8fc9f094ef Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 1 Jun 2023 08:49:34 +0200 Subject: Resolve (but disable for now) target_count issue in resolve_members() --- libbuild2/algorithm.ixx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'libbuild2/algorithm.ixx') diff --git a/libbuild2/algorithm.ixx b/libbuild2/algorithm.ixx index d2cd018..6fcc1e9 100644 --- a/libbuild2/algorithm.ixx +++ b/libbuild2/algorithm.ixx @@ -535,9 +535,12 @@ namespace build2 inline void clear_target (action a, target& t) { - t[a].vars.clear (); + target::opstate& s (t.state[a]); + s.recipe = nullptr; + s.recipe_keep = false; + s.resolve_counted = false; + s.vars.clear (); t.prerequisite_targets[a].clear (); - t.clear_data (a); } LIBBUILD2_SYMEXPORT void @@ -842,7 +845,7 @@ namespace build2 } inline target_state - execute_inner (action a, const target& t) + execute_inner (action a, const target& t) // @@ TMP Why inline (used as recipe)? { assert (a.outer ()); return execute_sync (a.inner_action (), t); -- cgit v1.1