From ad620af6f6d36f2e10d6affaf2112e3f35c656c9 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Wed, 7 Jun 2023 14:59:22 -0600 Subject: [PATCH] Revert "[iter] Another try at writing some for loops as range loops" This reverts commit 69c6928289cad871b5b096fbdcd2827fdb80c3ad. This had code size increase, and slows down non-random-access iterators since it accesses __end__ which is O(n). --- src/hb-iter.hh | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/hb-iter.hh b/src/hb-iter.hh index f50af395a..98d65a895 100644 --- a/src/hb-iter.hh +++ b/src/hb-iter.hh @@ -496,8 +496,8 @@ struct hb_reduce_t operator () (Iter it) { AccuT value = init_value; - for (auto&& _ : it) - value = r (value, _); + for (; it; ++it) + value = r (value, *it); return value; } @@ -679,8 +679,8 @@ struct hb_apply_t hb_requires (hb_is_iterator (Iter))> void operator () (Iter it) { - for (auto&& _ : it) - (void) hb_invoke (a, _); + for (; it; ++it) + (void) hb_invoke (a, *it); } private: @@ -879,8 +879,8 @@ struct hb_sink_t hb_requires (hb_is_iterator (Iter))> void operator () (Iter it) { - for (auto&& _ : it) - s << _; + for (; it; ++it) + s << *it; } private: @@ -906,8 +906,8 @@ struct hb_requires (hb_is_iterator (Iter))> void operator () (Iter it) const { - for (auto&& _ : it) - (void) _; + for (; it; ++it) + (void) *it; } } HB_FUNCOBJ (hb_drain); @@ -923,10 +923,11 @@ struct hb_unzip_t hb_requires (hb_is_iterator (Iter))> void operator () (Iter it) { - for (auto&& _ : it) + for (; it; ++it) { - s1 << _.first; - s2 << _.second; + const auto &v = *it; + s1 << v.first; + s2 << v.second; } }