aboutsummaryrefslogtreecommitdiff
path: root/build2/target.ixx
diff options
context:
space:
mode:
Diffstat (limited to 'build2/target.ixx')
-rw-r--r--build2/target.ixx14
1 files changed, 12 insertions, 2 deletions
diff --git a/build2/target.ixx b/build2/target.ixx
index 16dbf61..242e81d 100644
--- a/build2/target.ixx
+++ b/build2/target.ixx
@@ -212,7 +212,7 @@ namespace build2
if (k_ == nullptr && g_.count != 0) // Iterating over a normal group.
{
- if (g_.members == nullptr || // leave_group()
+ if (g_.members == nullptr || // Special case, see leave_group().
++j_ > g_.count)
g_.count = 0;
}
@@ -248,7 +248,7 @@ namespace build2
{
// Otherwise assume it is a normal group.
//
- g_ = resolve_group_members (r_->a_, search (*i_));
+ g_ = resolve_group_members (r_->a_, search (r_->t_, *i_));
if (g_.members == nullptr) // Members are not know.
{
@@ -283,6 +283,16 @@ namespace build2
}
}
+ template <typename T>
+ inline bool prerequisite_members_range<T>::iterator::
+ group () const
+ {
+ return
+ k_ != nullptr ? k_->member != nullptr : /* ad hoc */
+ g_.count != 0 ? g_.members != nullptr && j_ < g_.count : /* normal */
+ false;
+ }
+
// mtime_target
//
inline void mtime_target::