diff options
Diffstat (limited to 'src/google/protobuf/wire_format.cc')
-rw-r--r-- | src/google/protobuf/wire_format.cc | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/src/google/protobuf/wire_format.cc b/src/google/protobuf/wire_format.cc index 5ee4e25d..147478be 100644 --- a/src/google/protobuf/wire_format.cc +++ b/src/google/protobuf/wire_format.cc @@ -307,9 +307,9 @@ uint8* WireFormat::SerializeUnknownMessageSetItemsToArray( return target; } -int WireFormat::ComputeUnknownFieldsSize( +size_t WireFormat::ComputeUnknownFieldsSize( const UnknownFieldSet& unknown_fields) { - int size = 0; + size_t size = 0; for (int i = 0; i < unknown_fields.field_count(); i++) { const UnknownField& field = unknown_fields.field(i); @@ -355,9 +355,9 @@ int WireFormat::ComputeUnknownFieldsSize( return size; } -int WireFormat::ComputeUnknownMessageSetItemsSize( +size_t WireFormat::ComputeUnknownMessageSetItemsSize( const UnknownFieldSet& unknown_fields) { - int size = 0; + size_t size = 0; for (int i = 0; i < unknown_fields.field_count(); i++) { const UnknownField& field = unknown_fields.field(i); @@ -838,7 +838,7 @@ void WireFormat::SerializeFieldWithCachedSizes( if (is_packed && count > 0) { WireFormatLite::WriteTag(field->number(), WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output); - const int data_size = FieldDataOnlyByteSize(field, message); + const size_t data_size = FieldDataOnlyByteSize(field, message); output->WriteVarint32(data_size); } @@ -964,11 +964,11 @@ void WireFormat::SerializeMessageSetItemWithCachedSizes( // =================================================================== -int WireFormat::ByteSize(const Message& message) { +size_t WireFormat::ByteSize(const Message& message) { const Descriptor* descriptor = message.GetDescriptor(); const Reflection* message_reflection = message.GetReflection(); - int our_size = 0; + size_t our_size = 0; vector<const FieldDescriptor*> fields; message_reflection->ListFields(message, &fields); @@ -987,7 +987,7 @@ int WireFormat::ByteSize(const Message& message) { return our_size; } -int WireFormat::FieldByteSize( +size_t WireFormat::FieldByteSize( const FieldDescriptor* field, const Message& message) { const Reflection* message_reflection = message.GetReflection(); @@ -999,15 +999,15 @@ int WireFormat::FieldByteSize( return MessageSetItemByteSize(field, message); } - int count = 0; + size_t count = 0; if (field->is_repeated()) { - count = message_reflection->FieldSize(message, field); + count = FromIntSize(message_reflection->FieldSize(message, field)); } else if (message_reflection->HasField(message, field)) { count = 1; } - const int data_size = FieldDataOnlyByteSize(field, message); - int our_size = data_size; + const size_t data_size = FieldDataOnlyByteSize(field, message); + size_t our_size = data_size; if (field->is_packed()) { if (data_size > 0) { // Packed fields get serialized like a string, not their native type. @@ -1022,19 +1022,20 @@ int WireFormat::FieldByteSize( return our_size; } -int WireFormat::FieldDataOnlyByteSize( +size_t WireFormat::FieldDataOnlyByteSize( const FieldDescriptor* field, const Message& message) { const Reflection* message_reflection = message.GetReflection(); - int count = 0; + size_t count = 0; if (field->is_repeated()) { - count = message_reflection->FieldSize(message, field); + count = + internal::FromIntSize(message_reflection->FieldSize(message, field)); } else if (message_reflection->HasField(message, field)) { count = 1; } - int data_size = 0; + size_t data_size = 0; switch (field->type()) { #define HANDLE_TYPE(TYPE, TYPE_METHOD, CPPTYPE_METHOD) \ case FieldDescriptor::TYPE_##TYPE: \ @@ -1108,19 +1109,19 @@ int WireFormat::FieldDataOnlyByteSize( return data_size; } -int WireFormat::MessageSetItemByteSize( +size_t WireFormat::MessageSetItemByteSize( const FieldDescriptor* field, const Message& message) { const Reflection* message_reflection = message.GetReflection(); - int our_size = WireFormatLite::kMessageSetItemTagsSize; + size_t our_size = WireFormatLite::kMessageSetItemTagsSize; // type_id our_size += io::CodedOutputStream::VarintSize32(field->number()); // message const Message& sub_message = message_reflection->GetMessage(message, field); - int message_size = sub_message.ByteSize(); + size_t message_size = sub_message.ByteSizeLong(); our_size += io::CodedOutputStream::VarintSize32(message_size); our_size += message_size; |