diff --git a/lib/yunq/serialize.cpp b/lib/yunq/serialize.cpp index 7b7852d..9d58ac8 100644 --- a/lib/yunq/serialize.cpp +++ b/lib/yunq/serialize.cpp @@ -3,7 +3,7 @@ namespace yunq { namespace { -const uint64_t kIdentByte = 0x33441122; +const uint32_t kIdentByte = 0x33441122; } // namespace diff --git a/lib/yunq/serialize.h b/lib/yunq/serialize.h index b0c84c3..170917f 100644 --- a/lib/yunq/serialize.h +++ b/lib/yunq/serialize.h @@ -100,7 +100,7 @@ template void Serializer::WriteRepeatedMessage(uint64_t field_index, const glcr::Vector& value) { uint64_t next_offset = next_extension_; - uint64_t length = 0; + uint64_t length = value.size(); for (T& message : value) { uint64_t msg_length = 0; @@ -110,7 +110,6 @@ void Serializer::WriteRepeatedMessage(uint64_t field_index, } else { msg_length = message.SerializeToBytes(buffer_, offset_ + next_offset); } - length += msg_length; next_offset += msg_length; } @@ -119,7 +118,7 @@ void Serializer::WriteRepeatedMessage(uint64_t field_index, .length = (uint32_t)length, }; - next_extension_ += length; + next_extension_ = next_offset; buffer_.WriteAt(field_offset(field_index), ptr); }