Fixed end() iterator and also applied default copy-constructor instead of passing null handle in BasicMessageBuilder

This commit is contained in:
accelerated
2018-12-05 12:15:25 -05:00
parent 93e066a1c1
commit fe0c7e7dd5
3 changed files with 6 additions and 9 deletions

View File

@@ -279,16 +279,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 {
if (empty()) { return empty() ? end() : Iterator(make_non_owning(handle_.get()), 0);
return end();
}
return 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 Iterator(make_non_owning(handle_.get()), size()); return Iterator(empty() ? HeaderList<HeaderType>() : make_non_owning(handle_.get()), size());
} }
template <typename HeaderType> template <typename HeaderType>

View File

@@ -154,7 +154,7 @@ private:
HeaderIterator(HeaderListType headers, HeaderIterator(HeaderListType headers,
size_t index) size_t index)
: header_list_(std::move(headers)), : header_list_(std::move(headers)),
header_(index == header_list_.size() ? HeaderType() : header_list_.at(index)), header_(header_list_.empty() ? HeaderType() : header_list_.at(index)),
index_(index) { index_(index) {
} }

View File

@@ -245,7 +245,7 @@ BasicMessageBuilder<T, C>::BasicMessageBuilder(const Message& message)
key_(Buffer(message.get_key().get_data(), message.get_key().get_size())), key_(Buffer(message.get_key().get_data(), message.get_key().get_size())),
#if (RD_KAFKA_VERSION >= RD_KAFKA_HEADERS_SUPPORT_VERSION) #if (RD_KAFKA_VERSION >= RD_KAFKA_HEADERS_SUPPORT_VERSION)
header_list_(message.get_header_list() ? header_list_(message.get_header_list() ?
rd_kafka_headers_copy(message.get_header_list().get_handle()) : nullptr), //copy headers HeaderListType(rd_kafka_headers_copy(message.get_header_list().get_handle())) : HeaderListType()), //copy headers
#endif #endif
payload_(Buffer(message.get_payload().get_data(), message.get_payload().get_size())), payload_(Buffer(message.get_payload().get_data(), message.get_payload().get_size())),
timestamp_(message.get_timestamp() ? message.get_timestamp().get().get_timestamp() : timestamp_(message.get_timestamp() ? message.get_timestamp().get().get_timestamp() :
@@ -262,7 +262,7 @@ BasicMessageBuilder<T, C>::BasicMessageBuilder(const BasicMessageBuilder<U, V>&
partition_(rhs.partition()), partition_(rhs.partition()),
#if (RD_KAFKA_VERSION >= RD_KAFKA_HEADERS_SUPPORT_VERSION) #if (RD_KAFKA_VERSION >= RD_KAFKA_HEADERS_SUPPORT_VERSION)
header_list_(rhs.header_list() ? header_list_(rhs.header_list() ?
rd_kafka_headers_copy(rhs.header_list().get_handle()) : nullptr), //copy headers HeaderListType(rd_kafka_headers_copy(rhs.header_list().get_handle())) : HeaderListType()), //copy headers
#endif #endif
timestamp_(rhs.timestamp()), timestamp_(rhs.timestamp()),
user_data_(rhs.user_data()), user_data_(rhs.user_data()),
@@ -278,7 +278,7 @@ BasicMessageBuilder<T, C>::BasicMessageBuilder(BasicMessageBuilder<U, V>&& rhs)
partition_(rhs.partition()), partition_(rhs.partition()),
#if (RD_KAFKA_VERSION >= RD_KAFKA_HEADERS_SUPPORT_VERSION) #if (RD_KAFKA_VERSION >= RD_KAFKA_HEADERS_SUPPORT_VERSION)
header_list_(rhs.header_list() ? header_list_(rhs.header_list() ?
rhs.header_list().release_handle() : nullptr), //assume header ownership HeaderListType(rhs.header_list().release_handle()) : HeaderListType()), //assume header ownership
#endif #endif
timestamp_(rhs.timestamp()), timestamp_(rhs.timestamp()),
user_data_(rhs.user_data()), user_data_(rhs.user_data()),