diff --git a/script/api_protobuf/api_protobuf.py b/script/api_protobuf/api_protobuf.py index fc7c22bf6d..fa2f87d98d 100755 --- a/script/api_protobuf/api_protobuf.py +++ b/script/api_protobuf/api_protobuf.py @@ -393,7 +393,8 @@ class DoubleType(TypeInfo): return o def get_size_calculation(self, name: str, force: bool = False) -> str: - return self._get_fixed_size_calculation(name, "add_double") + field_id_size = self.calculate_field_id_size() + return f"size.add_double({field_id_size}, {name});" def get_fixed_size_bytes(self) -> int: return 8 @@ -1116,18 +1117,6 @@ class FixedArrayRepeatedType(TypeInfo): return f"buffer.{self._ti.encode_func}({self.number}, static_cast({element}), true);" return f"buffer.{self._ti.encode_func}({self.number}, {element}, true);" - # If skip_zero is enabled, wrap encoding in a zero check - if self.skip_zero: - # Build the condition to check if at least one element is non-zero - non_zero_checks = " || ".join( - [f"this->{self.field_name}[{i}] != 0" for i in range(self.array_size)] - ) - encode_lines = [ - f" {encode_element(f'this->{self.field_name}[{i}]')}" - for i in range(self.array_size) - ] - return f"if ({non_zero_checks}) {{\n" + "\n".join(encode_lines) + "\n}" - # If skip_zero is enabled, wrap encoding in a zero check if self.skip_zero: if self.is_define: @@ -1477,9 +1466,6 @@ def build_type_usage_map( field_ifdef = get_field_opt(field, pb.field_ifdef) message_field_ifdefs.setdefault(type_name, set()).add(field_ifdef) used_messages.add(type_name) - # Also track the field_ifdef if present - field_ifdef = get_field_opt(field, pb.field_ifdef) - message_field_ifdefs.setdefault(type_name, set()).add(field_ifdef) # Helper to get unique ifdef from a set of messages def get_unique_ifdef(message_names: set[str]) -> str | None: