Skip to content

Commit 25c2eaa

Browse files
author
accelerated
committed
Changed iterator logic to capture header list by reference
1 parent 1c80af9 commit 25c2eaa

File tree

2 files changed

+5
-8
lines changed

2 files changed

+5
-8
lines changed

include/cppkafka/header_list.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -306,15 +306,13 @@ bool HeaderList<HeaderType>::empty() const {
306306
template <typename HeaderType>
307307
typename HeaderList<HeaderType>::Iterator
308308
HeaderList<HeaderType>::begin() const {
309-
return empty() ? Iterator(HeaderList<HeaderType>(), 0) :
310-
Iterator(make_non_owning(handle_.get()), 0);
309+
return Iterator(*this, 0);
311310
}
312311

313312
template <typename HeaderType>
314313
typename HeaderList<HeaderType>::Iterator
315314
HeaderList<HeaderType>::end() const {
316-
return empty() ? Iterator(HeaderList<HeaderType>(), size()) :
317-
Iterator(make_non_owning(handle_.get()), size());
315+
return Iterator(*this, size());
318316
}
319317

320318
template <typename HeaderType>

include/cppkafka/header_list_iterator.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,9 @@ class HeaderIterator {
151151
}
152152

153153
private:
154-
HeaderIterator(HeaderListType headers,
154+
HeaderIterator(const HeaderListType& headers,
155155
size_t index)
156-
: header_list_(std::move(headers)),
157-
header_(header_list_.empty() ? HeaderType() : header_list_.at(index)),
156+
: header_list_(headers),
158157
index_(index) {
159158
}
160159

@@ -169,7 +168,7 @@ class HeaderIterator {
169168
other.get_value().get_size()));
170169
}
171170

172-
HeaderListType header_list_;
171+
const HeaderListType& header_list_;
173172
HeaderType header_;
174173
size_t index_;
175174
};

0 commit comments

Comments
 (0)