This commit is contained in:
J. Nick Koston 2025-07-26 14:53:14 -10:00
parent 2e16b3ea31
commit ae12097636
No known key found for this signature in database

View File

@ -537,12 +537,9 @@ class ProtoSize {
* @brief Calculates and adds the size of a uint32 field to the total message size * @brief Calculates and adds the size of a uint32 field to the total message size
*/ */
inline void add_uint32(uint32_t field_id_size, uint32_t value) { inline void add_uint32(uint32_t field_id_size, uint32_t value) {
// Skip calculation if value is zero if (value != 0) {
if (value == 0) { add_uint32_repeated(field_id_size, value);
return; // No need to update total_size_
} }
// Delegate to repeated version
add_uint32_repeated(field_id_size, value);
} }
/** /**
@ -617,12 +614,9 @@ class ProtoSize {
* Sint32 fields use ZigZag encoding, which is more efficient for negative values. * Sint32 fields use ZigZag encoding, which is more efficient for negative values.
*/ */
inline void add_sint32(uint32_t field_id_size, int32_t value) { inline void add_sint32(uint32_t field_id_size, int32_t value) {
// Skip calculation if value is zero if (value != 0) {
if (value == 0) { add_sint32_repeated(field_id_size, value);
return; // No need to update total_size_
} }
// Delegate to repeated version
add_sint32_repeated(field_id_size, value);
} }
/** /**
@ -641,12 +635,9 @@ class ProtoSize {
* @brief Calculates and adds the size of an int64 field to the total message size * @brief Calculates and adds the size of an int64 field to the total message size
*/ */
inline void add_int64(uint32_t field_id_size, int64_t value) { inline void add_int64(uint32_t field_id_size, int64_t value) {
// Skip calculation if value is zero if (value != 0) {
if (value == 0) { add_int64_repeated(field_id_size, value);
return; // No need to update total_size_
} }
// Delegate to repeated version
add_int64_repeated(field_id_size, value);
} }
/** /**
@ -661,12 +652,9 @@ class ProtoSize {
* @brief Calculates and adds the size of a uint64 field to the total message size * @brief Calculates and adds the size of a uint64 field to the total message size
*/ */
inline void add_uint64(uint32_t field_id_size, uint64_t value) { inline void add_uint64(uint32_t field_id_size, uint64_t value) {
// Skip calculation if value is zero if (value != 0) {
if (value == 0) { add_uint64_repeated(field_id_size, value);
return; // No need to update total_size_
} }
// Delegate to repeated version
add_uint64_repeated(field_id_size, value);
} }
/** /**
@ -684,12 +672,9 @@ class ProtoSize {
* @brief Calculates and adds the size of a length-delimited field (string/bytes) to the total message size * @brief Calculates and adds the size of a length-delimited field (string/bytes) to the total message size
*/ */
inline void add_length(uint32_t field_id_size, size_t len) { inline void add_length(uint32_t field_id_size, size_t len) {
// Skip calculation if length is zero if (len != 0) {
if (len == 0) { add_length_repeated(field_id_size, len);
return; // No need to update total_size_
} }
// Delegate to repeated version
add_length_repeated(field_id_size, len);
} }
/** /**