diff --git a/include/cppkafka/header_list.h b/include/cppkafka/header_list.h index b0d3ab4..45115ee 100644 --- a/include/cppkafka/header_list.h +++ b/include/cppkafka/header_list.h @@ -279,16 +279,13 @@ bool HeaderList::empty() const { template typename HeaderList::Iterator HeaderList::begin() const { - if (empty()) { - return end(); - } - return Iterator(make_non_owning(handle_.get()), 0); + return empty() ? end() : Iterator(make_non_owning(handle_.get()), 0); } template typename HeaderList::Iterator HeaderList::end() const { - return Iterator(make_non_owning(handle_.get()), size()); + return Iterator(empty() ? HeaderList() : make_non_owning(handle_.get()), size()); } template diff --git a/include/cppkafka/header_list_iterator.h b/include/cppkafka/header_list_iterator.h index 226c3e2..e226b6d 100644 --- a/include/cppkafka/header_list_iterator.h +++ b/include/cppkafka/header_list_iterator.h @@ -154,7 +154,7 @@ private: HeaderIterator(HeaderListType headers, size_t index) : 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) { } diff --git a/include/cppkafka/message_builder.h b/include/cppkafka/message_builder.h index 981e120..d7dd9b0 100644 --- a/include/cppkafka/message_builder.h +++ b/include/cppkafka/message_builder.h @@ -245,7 +245,7 @@ BasicMessageBuilder::BasicMessageBuilder(const Message& message) key_(Buffer(message.get_key().get_data(), message.get_key().get_size())), #if (RD_KAFKA_VERSION >= RD_KAFKA_HEADERS_SUPPORT_VERSION) 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 payload_(Buffer(message.get_payload().get_data(), message.get_payload().get_size())), timestamp_(message.get_timestamp() ? message.get_timestamp().get().get_timestamp() : @@ -262,7 +262,7 @@ BasicMessageBuilder::BasicMessageBuilder(const BasicMessageBuilder& partition_(rhs.partition()), #if (RD_KAFKA_VERSION >= RD_KAFKA_HEADERS_SUPPORT_VERSION) 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 timestamp_(rhs.timestamp()), user_data_(rhs.user_data()), @@ -278,7 +278,7 @@ BasicMessageBuilder::BasicMessageBuilder(BasicMessageBuilder&& rhs) partition_(rhs.partition()), #if (RD_KAFKA_VERSION >= RD_KAFKA_HEADERS_SUPPORT_VERSION) 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 timestamp_(rhs.timestamp()), user_data_(rhs.user_data()),