Changed iterator logic to capture header list by reference

This commit is contained in:
accelerated
2018-12-06 10:37:02 -05:00
parent 1c80af9b68
commit 25c2eaa998
2 changed files with 5 additions and 8 deletions

View File

@@ -306,15 +306,13 @@ bool HeaderList<HeaderType>::empty() const {
template <typename HeaderType> template <typename HeaderType>
typename HeaderList<HeaderType>::Iterator typename HeaderList<HeaderType>::Iterator
HeaderList<HeaderType>::begin() const { HeaderList<HeaderType>::begin() const {
return empty() ? Iterator(HeaderList<HeaderType>(), 0) : return Iterator(*this, 0);
Iterator(make_non_owning(handle_.get()), 0);
} }
template <typename HeaderType> template <typename HeaderType>
typename HeaderList<HeaderType>::Iterator typename HeaderList<HeaderType>::Iterator
HeaderList<HeaderType>::end() const { HeaderList<HeaderType>::end() const {
return empty() ? Iterator(HeaderList<HeaderType>(), size()) : return Iterator(*this, size());
Iterator(make_non_owning(handle_.get()), size());
} }
template <typename HeaderType> template <typename HeaderType>

View File

@@ -151,10 +151,9 @@ public:
} }
private: private:
HeaderIterator(HeaderListType headers, HeaderIterator(const HeaderListType& headers,
size_t index) size_t index)
: header_list_(std::move(headers)), : header_list_(headers),
header_(header_list_.empty() ? HeaderType() : header_list_.at(index)),
index_(index) { index_(index) {
} }
@@ -169,7 +168,7 @@ private:
other.get_value().get_size())); other.get_value().get_size()));
} }
HeaderListType header_list_; const HeaderListType& header_list_;
HeaderType header_; HeaderType header_;
size_t index_; size_t index_;
}; };