From adf0ce7fbdec4ac591f1b67cd880aec8adeb7555 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 29 Mar 2026 14:33:51 -1000 Subject: [PATCH] [api] Remove redundant frame_header_padding arg from write_plaintext_header It's always HEADER_PADDING (constexpr 6). Using it directly inside the function eliminates an argument and lets the compiler constant-fold. --- esphome/components/api/api_frame_helper_plaintext.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/esphome/components/api/api_frame_helper_plaintext.cpp b/esphome/components/api/api_frame_helper_plaintext.cpp index b74b215e15..d641a97650 100644 --- a/esphome/components/api/api_frame_helper_plaintext.cpp +++ b/esphome/components/api/api_frame_helper_plaintext.cpp @@ -236,8 +236,8 @@ APIError APIPlaintextFrameHelper::read_packet(ReadPacketBuffer *buffer) { } // Write plaintext header into pre-allocated padding before payload. // Returns the total header length (indicator + varints). -ESPHOME_ALWAYS_INLINE static inline uint8_t write_plaintext_header(uint8_t *buf_start, const MessageInfo &msg, - uint8_t frame_header_padding) { +ESPHOME_ALWAYS_INLINE static inline uint8_t write_plaintext_header(uint8_t *buf_start, const MessageInfo &msg) { + constexpr uint8_t frame_header_padding = APIPlaintextFrameHelper::HEADER_PADDING; // Calculate varint sizes for header layout using inline ternary to avoid varint_slow call overhead uint8_t size_varint_len = msg.payload_size < ProtoSize::VARINT_THRESHOLD_1_BYTE ? 1 @@ -289,7 +289,7 @@ APIError APIPlaintextFrameHelper::write_protobuf_packet(uint8_t type, ProtoWrite MessageInfo msg{type, 0, static_cast(buffer.get_buffer()->size() - HEADER_PADDING)}; uint8_t *buffer_data = buffer.get_buffer()->data(); - uint8_t header_len = write_plaintext_header(buffer_data, msg, HEADER_PADDING); + uint8_t header_len = write_plaintext_header(buffer_data, msg); uint8_t *msg_start = buffer_data + HEADER_PADDING - header_len; uint16_t msg_len = static_cast(header_len + msg.payload_size); LOG_PACKET_SENDING(msg_start, msg_len); @@ -307,7 +307,7 @@ APIError APIPlaintextFrameHelper::write_protobuf_messages(ProtoWriteBuffer buffe uint16_t total_write_len = 0; for (const auto &msg : messages) { - uint8_t header_len = write_plaintext_header(buffer_data + msg.offset, msg, HEADER_PADDING); + uint8_t header_len = write_plaintext_header(buffer_data + msg.offset, msg); uint8_t *msg_start = buffer_data + msg.offset + HEADER_PADDING - header_len; size_t msg_len = static_cast(header_len + msg.payload_size); iovs.push_back({msg_start, msg_len});