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_; };