| Index: third_party/protobuf/src/google/protobuf/wire_format_lite_inl.h
|
| diff --git a/third_party/protobuf/src/google/protobuf/wire_format_lite_inl.h b/third_party/protobuf/src/google/protobuf/wire_format_lite_inl.h
|
| index 0e46e994cd69b55468c99e9479a5487e21ae490a..7bce21cf0d16b0dd17eb778fbba02be36d04b0c9 100644
|
| --- a/third_party/protobuf/src/google/protobuf/wire_format_lite_inl.h
|
| +++ b/third_party/protobuf/src/google/protobuf/wire_format_lite_inl.h
|
| @@ -251,7 +251,7 @@ inline bool WireFormatLite::ReadRepeatedFixedSizePrimitive(
|
| uint32 tag,
|
| io::CodedInputStream* input,
|
| RepeatedField<CType>* values) {
|
| - GOOGLE_DCHECK_EQ(UInt32Size(tag), static_cast<size_t>(tag_size));
|
| + GOOGLE_DCHECK_EQ(UInt32Size(tag), tag_size);
|
| CType value;
|
| if (!ReadPrimitive<CType, DeclaredType>(input, &value))
|
| return false;
|
| @@ -274,9 +274,8 @@ inline bool WireFormatLite::ReadRepeatedFixedSizePrimitive(
|
| // The number of bytes each type occupies on the wire.
|
| const int per_value_size = tag_size + sizeof(value);
|
|
|
| - // parentheses around (std::min) prevents macro expansion of min(...)
|
| int elements_available =
|
| - (std::min)(values->Capacity() - values->size(), size / per_value_size);
|
| + std::min(values->Capacity() - values->size(), size / per_value_size);
|
| int num_read = 0;
|
| while (num_read < elements_available &&
|
| (buffer = io::CodedInputStream::ExpectTagFromArray(
|
| @@ -330,8 +329,8 @@ bool WireFormatLite::ReadRepeatedPrimitiveNoInline(
|
| template <typename CType, enum WireFormatLite::FieldType DeclaredType>
|
| inline bool WireFormatLite::ReadPackedPrimitive(io::CodedInputStream* input,
|
| RepeatedField<CType>* values) {
|
| - int length;
|
| - if (!input->ReadVarintSizeAsInt(&length)) return false;
|
| + uint32 length;
|
| + if (!input->ReadVarint32(&length)) return false;
|
| io::CodedInputStream::Limit limit = input->PushLimit(length);
|
| while (input->BytesUntilLimit() > 0) {
|
| CType value;
|
| @@ -345,11 +344,11 @@ inline bool WireFormatLite::ReadPackedPrimitive(io::CodedInputStream* input,
|
| template <typename CType, enum WireFormatLite::FieldType DeclaredType>
|
| inline bool WireFormatLite::ReadPackedFixedSizePrimitive(
|
| io::CodedInputStream* input, RepeatedField<CType>* values) {
|
| - int length;
|
| - if (!input->ReadVarintSizeAsInt(&length)) return false;
|
| - const int old_entries = values->size();
|
| - const int new_entries = length / sizeof(CType);
|
| - const int new_bytes = new_entries * sizeof(CType);
|
| + uint32 length;
|
| + if (!input->ReadVarint32(&length)) return false;
|
| + const uint32 old_entries = values->size();
|
| + const uint32 new_entries = length / sizeof(CType);
|
| + const uint32 new_bytes = new_entries * sizeof(CType);
|
| if (new_bytes != length) return false;
|
| // We would *like* to pre-allocate the buffer to write into (for
|
| // speed), but *must* avoid performing a very large allocation due
|
| @@ -367,9 +366,8 @@ inline bool WireFormatLite::ReadPackedFixedSizePrimitive(
|
| if (bytes_limit == -1) {
|
| bytes_limit = input->BytesUntilLimit();
|
| } else {
|
| - // parentheses around (std::min) prevents macro expansion of min(...)
|
| bytes_limit =
|
| - (std::min)(bytes_limit, static_cast<int64>(input->BytesUntilLimit()));
|
| + std::min(bytes_limit, static_cast<int64>(input->BytesUntilLimit()));
|
| }
|
| if (bytes_limit >= new_bytes) {
|
| // Fast-path that pre-allocates *values to the final size.
|
| @@ -384,7 +382,7 @@ inline bool WireFormatLite::ReadPackedFixedSizePrimitive(
|
| #else
|
| values->Reserve(old_entries + new_entries);
|
| CType value;
|
| - for (int i = 0; i < new_entries; ++i) {
|
| + for (uint32 i = 0; i < new_entries; ++i) {
|
| if (!ReadPrimitive<CType, DeclaredType>(input, &value)) return false;
|
| values->AddAlreadyReserved(value);
|
| }
|
| @@ -394,7 +392,7 @@ inline bool WireFormatLite::ReadPackedFixedSizePrimitive(
|
| // safely allocate. We read as much as we can into *values
|
| // without pre-allocating "length" bytes.
|
| CType value;
|
| - for (int i = 0; i < new_entries; ++i) {
|
| + for (uint32 i = 0; i < new_entries; ++i) {
|
| if (!ReadPrimitive<CType, DeclaredType>(input, &value)) return false;
|
| values->Add(value);
|
| }
|
| @@ -445,8 +443,8 @@ inline bool WireFormatLite::ReadGroup(int field_number,
|
| }
|
| inline bool WireFormatLite::ReadMessage(io::CodedInputStream* input,
|
| MessageLite* value) {
|
| - int length;
|
| - if (!input->ReadVarintSizeAsInt(&length)) return false;
|
| + uint32 length;
|
| + if (!input->ReadVarint32(&length)) return false;
|
| std::pair<io::CodedInputStream::Limit, int> p =
|
| input->IncrementRecursionDepthAndPushLimit(length);
|
| if (p.second < 0 || !value->MergePartialFromCodedStream(input)) return false;
|
| @@ -491,8 +489,8 @@ inline bool WireFormatLite::ReadGroupNoVirtualNoRecursionDepth(
|
| template<typename MessageType_WorkAroundCppLookupDefect>
|
| inline bool WireFormatLite::ReadMessageNoVirtual(
|
| io::CodedInputStream* input, MessageType_WorkAroundCppLookupDefect* value) {
|
| - int length;
|
| - if (!input->ReadVarintSizeAsInt(&length)) return false;
|
| + uint32 length;
|
| + if (!input->ReadVarint32(&length)) return false;
|
| std::pair<io::CodedInputStream::Limit, int> p =
|
| input->IncrementRecursionDepthAndPushLimit(length);
|
| if (p.second < 0 || !value->
|
| @@ -774,102 +772,103 @@ inline uint8* WireFormatLite::WriteBytesToArray(int field_number,
|
| }
|
|
|
|
|
| -inline uint8* WireFormatLite::InternalWriteGroupToArray(
|
| - int field_number, const MessageLite& value, bool deterministic,
|
| - uint8* target) {
|
| +inline uint8* WireFormatLite::WriteGroupToArray(int field_number,
|
| + const MessageLite& value,
|
| + uint8* target) {
|
| target = WriteTagToArray(field_number, WIRETYPE_START_GROUP, target);
|
| - target = value.InternalSerializeWithCachedSizesToArray(deterministic, target);
|
| + target = value.SerializeWithCachedSizesToArray(target);
|
| return WriteTagToArray(field_number, WIRETYPE_END_GROUP, target);
|
| }
|
| -inline uint8* WireFormatLite::InternalWriteMessageToArray(
|
| - int field_number, const MessageLite& value, bool deterministic,
|
| - uint8* target) {
|
| +inline uint8* WireFormatLite::WriteMessageToArray(int field_number,
|
| + const MessageLite& value,
|
| + uint8* target) {
|
| target = WriteTagToArray(field_number, WIRETYPE_LENGTH_DELIMITED, target);
|
| target = io::CodedOutputStream::WriteVarint32ToArray(
|
| value.GetCachedSize(), target);
|
| - return value.InternalSerializeWithCachedSizesToArray(deterministic, target);
|
| + return value.SerializeWithCachedSizesToArray(target);
|
| }
|
|
|
| // See comment on ReadGroupNoVirtual to understand the need for this template
|
| // parameter name.
|
| template<typename MessageType_WorkAroundCppLookupDefect>
|
| -inline uint8* WireFormatLite::InternalWriteGroupNoVirtualToArray(
|
| +inline uint8* WireFormatLite::WriteGroupNoVirtualToArray(
|
| int field_number, const MessageType_WorkAroundCppLookupDefect& value,
|
| - bool deterministic, uint8* target) {
|
| + uint8* target) {
|
| target = WriteTagToArray(field_number, WIRETYPE_START_GROUP, target);
|
| - target = value.InternalSerializeWithCachedSizesToArray(deterministic, target);
|
| + target = value.MessageType_WorkAroundCppLookupDefect
|
| + ::SerializeWithCachedSizesToArray(target);
|
| return WriteTagToArray(field_number, WIRETYPE_END_GROUP, target);
|
| }
|
| template<typename MessageType_WorkAroundCppLookupDefect>
|
| -inline uint8* WireFormatLite::InternalWriteMessageNoVirtualToArray(
|
| +inline uint8* WireFormatLite::WriteMessageNoVirtualToArray(
|
| int field_number, const MessageType_WorkAroundCppLookupDefect& value,
|
| - bool deterministic, uint8* target) {
|
| + uint8* target) {
|
| target = WriteTagToArray(field_number, WIRETYPE_LENGTH_DELIMITED, target);
|
| target = io::CodedOutputStream::WriteVarint32ToArray(
|
| value.MessageType_WorkAroundCppLookupDefect::GetCachedSize(), target);
|
| - return value.InternalSerializeWithCachedSizesToArray(deterministic, target);
|
| + return value.MessageType_WorkAroundCppLookupDefect
|
| + ::SerializeWithCachedSizesToArray(target);
|
| }
|
|
|
| // ===================================================================
|
|
|
| -inline size_t WireFormatLite::Int32Size(int32 value) {
|
| +inline int WireFormatLite::Int32Size(int32 value) {
|
| return io::CodedOutputStream::VarintSize32SignExtended(value);
|
| }
|
| -inline size_t WireFormatLite::Int64Size(int64 value) {
|
| +inline int WireFormatLite::Int64Size(int64 value) {
|
| return io::CodedOutputStream::VarintSize64(static_cast<uint64>(value));
|
| }
|
| -inline size_t WireFormatLite::UInt32Size(uint32 value) {
|
| +inline int WireFormatLite::UInt32Size(uint32 value) {
|
| return io::CodedOutputStream::VarintSize32(value);
|
| }
|
| -inline size_t WireFormatLite::UInt64Size(uint64 value) {
|
| +inline int WireFormatLite::UInt64Size(uint64 value) {
|
| return io::CodedOutputStream::VarintSize64(value);
|
| }
|
| -inline size_t WireFormatLite::SInt32Size(int32 value) {
|
| +inline int WireFormatLite::SInt32Size(int32 value) {
|
| return io::CodedOutputStream::VarintSize32(ZigZagEncode32(value));
|
| }
|
| -inline size_t WireFormatLite::SInt64Size(int64 value) {
|
| +inline int WireFormatLite::SInt64Size(int64 value) {
|
| return io::CodedOutputStream::VarintSize64(ZigZagEncode64(value));
|
| }
|
| -inline size_t WireFormatLite::EnumSize(int value) {
|
| +inline int WireFormatLite::EnumSize(int value) {
|
| return io::CodedOutputStream::VarintSize32SignExtended(value);
|
| }
|
|
|
| -inline size_t WireFormatLite::StringSize(const string& value) {
|
| - return LengthDelimitedSize(value.size());
|
| +inline int WireFormatLite::StringSize(const string& value) {
|
| + return static_cast<int>(
|
| + io::CodedOutputStream::VarintSize32(static_cast<uint32>(value.size())) +
|
| + value.size());
|
| }
|
| -inline size_t WireFormatLite::BytesSize(const string& value) {
|
| - return LengthDelimitedSize(value.size());
|
| +inline int WireFormatLite::BytesSize(const string& value) {
|
| + return static_cast<int>(
|
| + io::CodedOutputStream::VarintSize32(static_cast<uint32>(value.size())) +
|
| + value.size());
|
| }
|
|
|
|
|
| -inline size_t WireFormatLite::GroupSize(const MessageLite& value) {
|
| - return value.ByteSizeLong();
|
| +inline int WireFormatLite::GroupSize(const MessageLite& value) {
|
| + return value.ByteSize();
|
| }
|
| -inline size_t WireFormatLite::MessageSize(const MessageLite& value) {
|
| - return LengthDelimitedSize(value.ByteSizeLong());
|
| +inline int WireFormatLite::MessageSize(const MessageLite& value) {
|
| + return LengthDelimitedSize(value.ByteSize());
|
| }
|
|
|
| // See comment on ReadGroupNoVirtual to understand the need for this template
|
| // parameter name.
|
| template<typename MessageType_WorkAroundCppLookupDefect>
|
| -inline size_t WireFormatLite::GroupSizeNoVirtual(
|
| +inline int WireFormatLite::GroupSizeNoVirtual(
|
| const MessageType_WorkAroundCppLookupDefect& value) {
|
| - return value.MessageType_WorkAroundCppLookupDefect::ByteSizeLong();
|
| + return value.MessageType_WorkAroundCppLookupDefect::ByteSize();
|
| }
|
| template<typename MessageType_WorkAroundCppLookupDefect>
|
| -inline size_t WireFormatLite::MessageSizeNoVirtual(
|
| +inline int WireFormatLite::MessageSizeNoVirtual(
|
| const MessageType_WorkAroundCppLookupDefect& value) {
|
| return LengthDelimitedSize(
|
| - value.MessageType_WorkAroundCppLookupDefect::ByteSizeLong());
|
| + value.MessageType_WorkAroundCppLookupDefect::ByteSize());
|
| }
|
|
|
| -inline size_t WireFormatLite::LengthDelimitedSize(size_t length) {
|
| - // The static_cast here prevents an error in certain compiler configurations
|
| - // but is not technically correct--if length is too large to fit in a uint32
|
| - // then it will be silently truncated. We will need to fix this if we ever
|
| - // decide to start supporting serialized messages greater than 2 GiB in size.
|
| - return length + io::CodedOutputStream::VarintSize32(
|
| - static_cast<uint32>(length));
|
| +inline int WireFormatLite::LengthDelimitedSize(int length) {
|
| + return io::CodedOutputStream::VarintSize32(length) + length;
|
| }
|
|
|
| } // namespace internal
|
|
|