mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-11-16 04:24:43 +00:00
gdbsupport: remove variadicity from filtered_iterator constructor
For the same reason as the previous patches (making things easier to understand, at the cost of being more explicit), remove filtered_iterator's variadic constructor, forcing the callers to pass already built underlying iterators. Change-Id: I1a9b6d43f3f087579b61b90b6f8f4128d66e19a1 Approved-By: Tom Tromey <tom@tromey.com>
This commit is contained in:
@@ -723,8 +723,13 @@ all_breakpoints_safe ()
|
||||
tracepoint_range
|
||||
all_tracepoints ()
|
||||
{
|
||||
return tracepoint_range (tracepoint_iterator (breakpoint_chain.begin ()),
|
||||
tracepoint_iterator (breakpoint_chain.end ()));
|
||||
breakpoint_iterator begin (breakpoint_chain.begin ());
|
||||
breakpoint_iterator end (breakpoint_chain.end ());
|
||||
tracepoint_iterator tracepoint_begin (std::move (begin), end);
|
||||
tracepoint_iterator tracepoint_end (end, end);
|
||||
|
||||
return tracepoint_range (std::move (tracepoint_begin),
|
||||
std::move (tracepoint_end));
|
||||
}
|
||||
|
||||
/* Array is sorted by bp_location_ptr_is_less_than - primarily by the
|
||||
|
||||
@@ -487,9 +487,10 @@ public:
|
||||
*/
|
||||
inf_non_exited_threads_range non_exited_threads ()
|
||||
{
|
||||
inf_non_exited_threads_iterator begin (this->thread_list.begin ());
|
||||
inf_threads_iterator begin (this->thread_list.begin ());
|
||||
inf_non_exited_threads_iterator filtered_begin (std::move (begin));
|
||||
|
||||
return inf_non_exited_threads_range (std::move (begin));
|
||||
return inf_non_exited_threads_range (std::move (filtered_begin));
|
||||
}
|
||||
|
||||
/* Like inferior::threads(), but returns a range adapter that can be
|
||||
@@ -860,9 +861,10 @@ all_inferiors (process_stratum_target *proc_target = nullptr)
|
||||
inline all_non_exited_inferiors_range
|
||||
all_non_exited_inferiors (process_stratum_target *proc_target = nullptr)
|
||||
{
|
||||
all_non_exited_inferiors_iterator begin (proc_target, inferior_list);
|
||||
all_inferiors_iterator begin (proc_target, inferior_list);
|
||||
all_non_exited_inferiors_iterator filtered_begin (std::move (begin));
|
||||
|
||||
return all_non_exited_inferiors_range (std::move (begin));
|
||||
return all_non_exited_inferiors_range (std::move (filtered_begin));
|
||||
}
|
||||
|
||||
/* Prune away automatically added inferiors that aren't required
|
||||
|
||||
@@ -237,7 +237,12 @@ public:
|
||||
{}
|
||||
|
||||
all_non_exited_threads_iterator begin () const
|
||||
{ return all_non_exited_threads_iterator (m_filter_target, m_filter_ptid); }
|
||||
{
|
||||
all_matching_threads_iterator begin (m_filter_target, m_filter_ptid);
|
||||
|
||||
return all_non_exited_threads_iterator (std::move (begin));
|
||||
}
|
||||
|
||||
all_non_exited_threads_iterator end () const
|
||||
{ return all_non_exited_threads_iterator (); }
|
||||
|
||||
|
||||
@@ -115,12 +115,15 @@ test_filtered_iterator ()
|
||||
std::vector<int> even_ints;
|
||||
const std::vector<int> expected_even_ints { 4, 4, 6, 8 };
|
||||
|
||||
int_array_iterator begin (array, ARRAY_SIZE (array));
|
||||
int_array_iterator end;
|
||||
filtered_iterator<int_array_iterator, even_numbers_only>
|
||||
iter (array, ARRAY_SIZE (array));
|
||||
filtered_iterator<int_array_iterator, even_numbers_only> end;
|
||||
filtered_iter (begin, end);
|
||||
filtered_iterator<int_array_iterator, even_numbers_only>
|
||||
filtered_end (end, end);
|
||||
|
||||
for (; iter != end; ++iter)
|
||||
even_ints.push_back (*iter);
|
||||
for (; filtered_iter != filtered_end; ++filtered_iter)
|
||||
even_ints.push_back (*filtered_iter);
|
||||
|
||||
SELF_CHECK (even_ints == expected_even_ints);
|
||||
}
|
||||
@@ -152,10 +155,12 @@ test_filtered_iterator_eq ()
|
||||
{
|
||||
int array[] = { 4, 4, 5, 6, 7, 8, 9 };
|
||||
|
||||
int_array_iterator begin (array, ARRAY_SIZE (array));
|
||||
int_array_iterator end;
|
||||
filtered_iterator<int_array_iterator, even_numbers_only>
|
||||
iter1(array, ARRAY_SIZE (array));
|
||||
iter1 (begin, end);
|
||||
filtered_iterator<int_array_iterator, even_numbers_only>
|
||||
iter2(array, ARRAY_SIZE (array));
|
||||
iter2 (begin, end);
|
||||
|
||||
/* They start equal. */
|
||||
SELF_CHECK (iter1 == iter2);
|
||||
|
||||
@@ -37,18 +37,19 @@ public:
|
||||
using difference_type
|
||||
= typename std::iterator_traits<BaseIterator>::difference_type;
|
||||
|
||||
/* Construct by forwarding all arguments to the underlying
|
||||
iterator. */
|
||||
template<typename... Args>
|
||||
explicit filtered_iterator (Args &&...args)
|
||||
: m_it (std::forward<Args> (args)...)
|
||||
{ skip_filtered (); }
|
||||
/* Construct by providing the begin underlying iterators. The end iterator
|
||||
is default-constructed. */
|
||||
filtered_iterator (BaseIterator begin)
|
||||
: filtered_iterator (std::move (begin), BaseIterator {})
|
||||
{}
|
||||
|
||||
/* Construct by providing begin and end underlying iterators. */
|
||||
filtered_iterator (BaseIterator begin, BaseIterator end)
|
||||
: m_it (std::move (begin)), m_end (std::move (end))
|
||||
{ skip_filtered (); }
|
||||
|
||||
/* Create a one-past-end iterator. */
|
||||
/* Create a one-past-end iterator. The underlying end iterator is obtained
|
||||
by default-constructing. */
|
||||
filtered_iterator () = default;
|
||||
|
||||
/* Need these as the variadic constructor would be a better match
|
||||
|
||||
Reference in New Issue
Block a user