From ac0f279e7e6e07971febfff2df6eca2cf8fbe7c8 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 10 Jul 2025 21:21:05 -1000 Subject: [PATCH] cleanup --- esphome/components/api/proto.cpp | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/esphome/components/api/proto.cpp b/esphome/components/api/proto.cpp index 29c9a02b62..3959c6d2a4 100644 --- a/esphome/components/api/proto.cpp +++ b/esphome/components/api/proto.cpp @@ -142,6 +142,7 @@ static void calculate_field_size(uint32_t &total_size, ProtoFieldType type, uint ProtoSize::add_int32_field(total_size, precalc_size, *static_cast(field_addr), force); break; case ProtoFieldType::TYPE_UINT32: + case ProtoFieldType::TYPE_ENUM: ProtoSize::add_uint32_field(total_size, precalc_size, *static_cast(field_addr), force); break; case ProtoFieldType::TYPE_INT64: @@ -156,25 +157,16 @@ static void calculate_field_size(uint32_t &total_size, ProtoFieldType type, uint case ProtoFieldType::TYPE_SINT64: ProtoSize::add_sint64_field(total_size, precalc_size, *static_cast(field_addr), force); break; - case ProtoFieldType::TYPE_ENUM: - ProtoSize::add_enum_field(total_size, precalc_size, *static_cast(field_addr), force); - break; case ProtoFieldType::TYPE_STRING: case ProtoFieldType::TYPE_BYTES: ProtoSize::add_string_field(total_size, precalc_size, *static_cast(field_addr), force); break; - case ProtoFieldType::TYPE_FLOAT: { - float val = *static_cast(field_addr); - ProtoSize::add_fixed_field<4>(total_size, precalc_size, val != 0.0f, force); - break; - } - case ProtoFieldType::TYPE_FIXED32: { - uint32_t val = *static_cast(field_addr); - ProtoSize::add_fixed_field<4>(total_size, precalc_size, val != 0, force); - break; - } + case ProtoFieldType::TYPE_FLOAT: + case ProtoFieldType::TYPE_FIXED32: case ProtoFieldType::TYPE_SFIXED32: { - int32_t val = *static_cast(field_addr); + // All 32-bit fixed types use the same size calculation + // Check if the 4-byte value is non-zero by treating as uint32_t + uint32_t val = *static_cast(field_addr); ProtoSize::add_fixed_field<4>(total_size, precalc_size, val != 0, force); break; }