From 25c2eaa998a8f2d4be89b2c50c9df713eb6ed95e Mon Sep 17 00:00:00 2001 From: accelerated <> Date: Thu, 6 Dec 2018 10:37:02 -0500 Subject: [PATCH] Changed iterator logic to capture header list by reference --- include/cppkafka/header_list.h | 6 ++---- include/cppkafka/header_list_iterator.h | 7 +++---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/include/cppkafka/header_list.h b/include/cppkafka/header_list.h index e0b4589..afb6210 100644 --- a/include/cppkafka/header_list.h +++ b/include/cppkafka/header_list.h @@ -306,15 +306,13 @@ bool HeaderList::empty() const { template typename HeaderList::Iterator HeaderList::begin() const { - return empty() ? Iterator(HeaderList(), 0) : - Iterator(make_non_owning(handle_.get()), 0); + return Iterator(*this, 0); } template typename HeaderList::Iterator HeaderList::end() const { - return empty() ? Iterator(HeaderList(), size()) : - Iterator(make_non_owning(handle_.get()), size()); + return Iterator(*this, size()); } template diff --git a/include/cppkafka/header_list_iterator.h b/include/cppkafka/header_list_iterator.h index e226b6d..b063294 100644 --- a/include/cppkafka/header_list_iterator.h +++ b/include/cppkafka/header_list_iterator.h @@ -151,10 +151,9 @@ public: } private: - HeaderIterator(HeaderListType headers, + HeaderIterator(const HeaderListType& headers, size_t index) - : header_list_(std::move(headers)), - header_(header_list_.empty() ? HeaderType() : header_list_.at(index)), + : header_list_(headers), index_(index) { } @@ -169,7 +168,7 @@ private: other.get_value().get_size())); } - HeaderListType header_list_; + const HeaderListType& header_list_; HeaderType header_; size_t index_; };