From a03a748a56f34ba153ad220e3ab7f2e26e27da08 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 11 Jul 2025 05:55:42 -1000 Subject: [PATCH] revert --- esphome/components/api/proto.cpp | 6 +++--- esphome/components/api/proto.h | 8 +++----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/esphome/components/api/proto.cpp b/esphome/components/api/proto.cpp index bbd2595b7b..ba04a09672 100644 --- a/esphome/components/api/proto.cpp +++ b/esphome/components/api/proto.cpp @@ -358,7 +358,7 @@ void ProtoMessage::decode(const uint8_t *buffer, size_t length) { // If not found, try repeated fields (linear search - usually only 1-2 fields) if (!decoded) { for (uint8_t j = 0; j < repeated_count; j++) { - if (repeated_fields[j].field_num == field_id && repeated_fields[j].get_wire_type() == 0) { + if (repeated_fields[j].field_num == field_id && get_wire_type(repeated_fields[j].get_type()) == 0) { void *field_addr = base + repeated_fields[j].get_offset(); decoded = decode_repeated_varint_field(repeated_fields[j].get_type(), field_addr, value); break; @@ -395,7 +395,7 @@ void ProtoMessage::decode(const uint8_t *buffer, size_t length) { // If not found, try repeated fields (linear search - usually only 1-2 fields) if (!decoded) { for (uint8_t j = 0; j < repeated_count; j++) { - if (repeated_fields[j].field_num == field_id && repeated_fields[j].get_wire_type() == 2) { + if (repeated_fields[j].field_num == field_id && get_wire_type(repeated_fields[j].get_type()) == 2) { void *field_addr = base + repeated_fields[j].get_offset(); decoded = decode_repeated_length_field(repeated_fields[j].get_type(), field_addr, value, repeated_fields[j].get_message_type_id()); @@ -430,7 +430,7 @@ void ProtoMessage::decode(const uint8_t *buffer, size_t length) { // If not found, try repeated fields (linear search - usually only 1-2 fields) if (!decoded) { for (uint8_t j = 0; j < repeated_count; j++) { - if (repeated_fields[j].field_num == field_id && repeated_fields[j].get_wire_type() == 5) { + if (repeated_fields[j].field_num == field_id && get_wire_type(repeated_fields[j].get_type()) == 5) { void *field_addr = base + repeated_fields[j].get_offset(); decoded = decode_repeated_32bit_field(repeated_fields[j].get_type(), field_addr, value); break; diff --git a/esphome/components/api/proto.h b/esphome/components/api/proto.h index 6932a85d71..d9962183c7 100644 --- a/esphome/components/api/proto.h +++ b/esphome/components/api/proto.h @@ -271,7 +271,6 @@ struct FieldMeta { // Helper methods inline ProtoFieldType get_type() const { return static_cast(type_and_size & 0x1F); } inline uint8_t get_precalced_size() const { return ((type_and_size >> 5) & 0x03) + 1; } - inline uint8_t get_wire_type() const { return ::esphome::api::get_wire_type(get_type()); } inline uint16_t get_offset() const { if (get_type() == ProtoFieldType::TYPE_MESSAGE) { // Reconstruct full offset from packed fields (10-bit offset) @@ -298,7 +297,6 @@ struct RepeatedFieldMeta { // Helper methods inline ProtoFieldType get_type() const { return static_cast(type_and_size & 0x1F); } inline uint8_t get_precalced_size() const { return ((type_and_size >> 5) & 0x03) + 1; } - inline uint8_t get_wire_type() const { return ::esphome::api::get_wire_type(get_type()); } inline uint16_t get_offset() const { if (get_type() == ProtoFieldType::TYPE_MESSAGE) { // Reconstruct full offset from packed fields (10-bit offset) @@ -325,7 +323,7 @@ inline const FieldMeta *find_field_binary(const FieldMeta *fields, uint8_t count right = mid; } else { // Found field_id, check wire type - if (fields[mid].get_wire_type() == wire_type) { + if (get_wire_type(fields[mid].get_type()) == wire_type) { return &fields[mid]; } // Field number matches but wire type doesn't - search nearby entries @@ -333,14 +331,14 @@ inline const FieldMeta *find_field_binary(const FieldMeta *fields, uint8_t count // Search backwards for (uint8_t k = mid; k > 0 && fields[k - 1].field_num == field_id; k--) { - if (fields[k - 1].get_wire_type() == wire_type) { + if (get_wire_type(fields[k - 1].get_type()) == wire_type) { return &fields[k - 1]; } } // Search forwards for (uint8_t k = mid + 1; k < count && fields[k].field_num == field_id; k++) { - if (fields[k].get_wire_type() == wire_type) { + if (get_wire_type(fields[k].get_type()) == wire_type) { return &fields[k]; } }