mirror of
https://github.com/esphome/esphome.git
synced 2025-09-06 21:32:21 +01:00
Merge branch 'integration' into memory_api
This commit is contained in:
@@ -291,7 +291,6 @@ uint16_t APIConnection::encode_message_to_buffer(ProtoMessage &msg, uint8_t mess
|
|||||||
|
|
||||||
// Get buffer size after allocation (which includes header padding)
|
// Get buffer size after allocation (which includes header padding)
|
||||||
std::vector<uint8_t> &shared_buf = conn->parent_->get_shared_buffer_ref();
|
std::vector<uint8_t> &shared_buf = conn->parent_->get_shared_buffer_ref();
|
||||||
size_t size_before_encode = shared_buf.size();
|
|
||||||
|
|
||||||
if (is_single || conn->flags_.batch_first_message) {
|
if (is_single || conn->flags_.batch_first_message) {
|
||||||
// Single message or first batch message
|
// Single message or first batch message
|
||||||
@@ -302,11 +301,13 @@ uint16_t APIConnection::encode_message_to_buffer(ProtoMessage &msg, uint8_t mess
|
|||||||
} else {
|
} else {
|
||||||
// Batch message second or later
|
// Batch message second or later
|
||||||
// Add padding for previous message footer + this message header
|
// Add padding for previous message footer + this message header
|
||||||
shared_buf.reserve(size_before_encode + total_calculated_size);
|
size_t current_size = shared_buf.size();
|
||||||
shared_buf.resize(size_before_encode + footer_size + header_padding);
|
shared_buf.reserve(current_size + total_calculated_size);
|
||||||
|
shared_buf.resize(current_size + footer_size + header_padding);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Encode directly into buffer
|
// Encode directly into buffer
|
||||||
|
size_t size_before_encode = shared_buf.size();
|
||||||
msg.encode({&shared_buf});
|
msg.encode({&shared_buf});
|
||||||
|
|
||||||
// Calculate actual encoded size (not including header that was already added)
|
// Calculate actual encoded size (not including header that was already added)
|
||||||
|
Reference in New Issue
Block a user