diff --git a/esphome/components/api/proto.h b/esphome/components/api/proto.h index f68ef330f6..045e424abf 100644 --- a/esphome/components/api/proto.h +++ b/esphome/components/api/proto.h @@ -221,7 +221,8 @@ class ProtoWriteBuffer { void write(uint8_t value) { this->buffer_->push_back(value); } // Single implementation that all overloads delegate to - void encode_varint(uint64_t value) { + // Mark noinline to prevent code bloat from inlining into every caller + __attribute__((noinline)) void encode_varint(uint64_t value) { auto buffer = this->buffer_; size_t start = buffer->size();