diff options
author | Jan Tattermusch <jtattermusch@users.noreply.github.com> | 2015-08-05 17:16:13 -0700 |
---|---|---|
committer | Jan Tattermusch <jtattermusch@users.noreply.github.com> | 2015-08-05 17:16:13 -0700 |
commit | ad8a889d1e1e2b0efd5b7579aa57ea5326cda6da (patch) | |
tree | 48e9e14f18ee1ff081df8d26a361665b9d458f74 /csharp/src/Google.Protobuf | |
parent | 607940321c8ceeb80ec1099d94add8eef86825e5 (diff) | |
parent | 38032688a7faf4eef2cac392b9e69697a202fe62 (diff) | |
download | protobuf-ad8a889d1e1e2b0efd5b7579aa57ea5326cda6da.tar.gz protobuf-ad8a889d1e1e2b0efd5b7579aa57ea5326cda6da.tar.bz2 protobuf-ad8a889d1e1e2b0efd5b7579aa57ea5326cda6da.zip |
Merge pull request #692 from jskeet/tag-0
Change ReadTag/PeekTag behaviour to return 0 at EOF
Diffstat (limited to 'csharp/src/Google.Protobuf')
15 files changed, 74 insertions, 184 deletions
diff --git a/csharp/src/Google.Protobuf/CodedInputStream.cs b/csharp/src/Google.Protobuf/CodedInputStream.cs index 5da03b5c..0e2495f1 100644 --- a/csharp/src/Google.Protobuf/CodedInputStream.cs +++ b/csharp/src/Google.Protobuf/CodedInputStream.cs @@ -254,37 +254,35 @@ namespace Google.Protobuf #region Reading of tags etc
/// <summary>
- /// Attempts to peek at the next field tag.
+ /// Peeks at the next field tag. This is like calling <see cref="ReadTag"/>, but the
+ /// tag is not consumed. (So a subsequent call to <see cref="ReadTag"/> will return the
+ /// same value.)
/// </summary>
- public bool PeekNextTag(out uint fieldTag)
+ public uint PeekTag()
{
if (hasNextTag)
{
- fieldTag = nextTag;
- return true;
+ return nextTag;
}
uint savedLast = lastTag;
- hasNextTag = ReadTag(out nextTag);
- lastTag = savedLast;
- fieldTag = nextTag;
- return hasNextTag;
+ nextTag = ReadTag();
+ hasNextTag = true;
+ lastTag = savedLast; // Undo the side effect of ReadTag
+ return nextTag;
}
/// <summary>
- /// Attempts to read a field tag, returning false if we have reached the end
- /// of the input data.
+ /// Reads a field tag, returning the tag of 0 for "end of stream".
/// </summary>
- /// <param name="fieldTag">The 'tag' of the field (id * 8 + wire-format)</param>
- /// <returns>true if the next fieldTag was read</returns>
- public bool ReadTag(out uint fieldTag)
+ /// <returns>The next field tag, or 0 for end of stream. (0 is never a valid tag.)</returns>
+ public uint ReadTag()
{
if (hasNextTag)
{
- fieldTag = nextTag;
- lastTag = fieldTag;
+ lastTag = nextTag;
hasNextTag = false;
- return true;
+ return lastTag;
}
// Optimize for the incredibly common case of having at least two bytes left in the buffer,
@@ -294,7 +292,7 @@ namespace Google.Protobuf int tmp = buffer[bufferPos++];
if (tmp < 128)
{
- fieldTag = (uint)tmp;
+ lastTag = (uint)tmp;
}
else
{
@@ -302,13 +300,13 @@ namespace Google.Protobuf if ((tmp = buffer[bufferPos++]) < 128)
{
result |= tmp << 7;
- fieldTag = (uint) result;
+ lastTag = (uint) result;
}
else
{
// Nope, rewind and go the potentially slow route.
bufferPos -= 2;
- fieldTag = ReadRawVarint32();
+ lastTag = ReadRawVarint32();
}
}
}
@@ -316,20 +314,18 @@ namespace Google.Protobuf {
if (IsAtEnd)
{
- fieldTag = 0;
- lastTag = fieldTag;
- return false;
+ lastTag = 0;
+ return 0; // This is the only case in which we return 0.
}
- fieldTag = ReadRawVarint32();
+ lastTag = ReadRawVarint32();
}
- lastTag = fieldTag;
if (lastTag == 0)
{
// If we actually read zero, that's not a valid tag.
throw InvalidProtocolBufferException.InvalidTag();
}
- return true;
+ return lastTag;
}
/// <summary>
@@ -580,14 +576,10 @@ namespace Google.Protobuf /// </summary>
public bool MaybeConsumeTag(uint tag)
{
- uint next;
- if (PeekNextTag(out next))
+ if (PeekTag() == tag)
{
- if (next == tag)
- {
- hasNextTag = false;
- return true;
- }
+ hasNextTag = false;
+ return true;
}
return false;
}
diff --git a/csharp/src/Google.Protobuf/Collections/MapField.cs b/csharp/src/Google.Protobuf/Collections/MapField.cs index fed3d062..5eb2c2fc 100644 --- a/csharp/src/Google.Protobuf/Collections/MapField.cs +++ b/csharp/src/Google.Protobuf/Collections/MapField.cs @@ -627,12 +627,8 @@ namespace Google.Protobuf.Collections public void MergeFrom(CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) + while ((tag = input.ReadTag()) != 0) { - if (tag == 0) - { - throw InvalidProtocolBufferException.InvalidTag(); - } if (tag == codec.keyCodec.Tag) { Key = codec.keyCodec.Read(input); diff --git a/csharp/src/Google.Protobuf/FieldCodec.cs b/csharp/src/Google.Protobuf/FieldCodec.cs index 1076c2a9..15d52c7d 100644 --- a/csharp/src/Google.Protobuf/FieldCodec.cs +++ b/csharp/src/Google.Protobuf/FieldCodec.cs @@ -298,12 +298,8 @@ namespace Google.Protobuf uint tag; T value = codec.DefaultValue; - while (input.ReadTag(out tag)) + while ((tag = input.ReadTag()) != 0) { - if (tag == 0) - { - throw InvalidProtocolBufferException.InvalidTag(); - } if (tag == codec.Tag) { value = codec.Read(input); diff --git a/csharp/src/Google.Protobuf/InvalidProtocolBufferException.cs b/csharp/src/Google.Protobuf/InvalidProtocolBufferException.cs index bbba9b3b..6905a6a3 100644 --- a/csharp/src/Google.Protobuf/InvalidProtocolBufferException.cs +++ b/csharp/src/Google.Protobuf/InvalidProtocolBufferException.cs @@ -70,7 +70,7 @@ namespace Google.Protobuf /// <summary>
/// Creates an exception for an error condition of an invalid tag being encountered.
/// </summary>
- public static InvalidProtocolBufferException InvalidTag()
+ internal static InvalidProtocolBufferException InvalidTag()
{
return new InvalidProtocolBufferException(
"Protocol message contained an invalid tag (zero).");
diff --git a/csharp/src/Google.Protobuf/Reflection/DescriptorProtoFile.cs b/csharp/src/Google.Protobuf/Reflection/DescriptorProtoFile.cs index a12e70f8..d66bdb80 100644 --- a/csharp/src/Google.Protobuf/Reflection/DescriptorProtoFile.cs +++ b/csharp/src/Google.Protobuf/Reflection/DescriptorProtoFile.cs @@ -239,10 +239,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -538,10 +536,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -834,10 +830,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -1003,10 +997,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -1136,10 +1128,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -1431,10 +1421,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -1606,10 +1594,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -1752,10 +1738,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -1917,10 +1901,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -2074,10 +2056,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -2305,10 +2285,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -2735,10 +2713,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -2990,10 +2966,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -3237,10 +3211,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -3422,10 +3394,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -3551,10 +3521,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -3676,10 +3644,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -3801,10 +3767,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -4036,10 +4000,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -4190,10 +4152,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -4298,10 +4258,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -4470,10 +4428,8 @@ namespace Google.Protobuf.Reflection { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/Any.cs b/csharp/src/Google.Protobuf/WellKnownTypes/Any.cs index 4352c16a..9fc653b0 100644 --- a/csharp/src/Google.Protobuf/WellKnownTypes/Any.cs +++ b/csharp/src/Google.Protobuf/WellKnownTypes/Any.cs @@ -147,10 +147,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/Api.cs b/csharp/src/Google.Protobuf/WellKnownTypes/Api.cs index a5d48166..8a94e7b0 100644 --- a/csharp/src/Google.Protobuf/WellKnownTypes/Api.cs +++ b/csharp/src/Google.Protobuf/WellKnownTypes/Api.cs @@ -210,10 +210,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -438,10 +436,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/Duration.cs b/csharp/src/Google.Protobuf/WellKnownTypes/Duration.cs index 1ca33dce..d74636d4 100644 --- a/csharp/src/Google.Protobuf/WellKnownTypes/Duration.cs +++ b/csharp/src/Google.Protobuf/WellKnownTypes/Duration.cs @@ -148,10 +148,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/Empty.cs b/csharp/src/Google.Protobuf/WellKnownTypes/Empty.cs index 0d948e38..0f1d7f50 100644 --- a/csharp/src/Google.Protobuf/WellKnownTypes/Empty.cs +++ b/csharp/src/Google.Protobuf/WellKnownTypes/Empty.cs @@ -103,10 +103,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/FieldMask.cs b/csharp/src/Google.Protobuf/WellKnownTypes/FieldMask.cs index 58dbc7fa..9bd47a96 100644 --- a/csharp/src/Google.Protobuf/WellKnownTypes/FieldMask.cs +++ b/csharp/src/Google.Protobuf/WellKnownTypes/FieldMask.cs @@ -117,10 +117,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/SourceContext.cs b/csharp/src/Google.Protobuf/WellKnownTypes/SourceContext.cs index 5566b5ce..ae79884f 100644 --- a/csharp/src/Google.Protobuf/WellKnownTypes/SourceContext.cs +++ b/csharp/src/Google.Protobuf/WellKnownTypes/SourceContext.cs @@ -126,10 +126,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/Struct.cs b/csharp/src/Google.Protobuf/WellKnownTypes/Struct.cs index 72bd16d4..ea8b1055 100644 --- a/csharp/src/Google.Protobuf/WellKnownTypes/Struct.cs +++ b/csharp/src/Google.Protobuf/WellKnownTypes/Struct.cs @@ -136,10 +136,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -391,10 +389,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -521,10 +517,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs b/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs index c3e5383e..89355bdc 100644 --- a/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs +++ b/csharp/src/Google.Protobuf/WellKnownTypes/Timestamp.cs @@ -148,10 +148,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/Type.cs b/csharp/src/Google.Protobuf/WellKnownTypes/Type.cs index 862caf82..36116a65 100644 --- a/csharp/src/Google.Protobuf/WellKnownTypes/Type.cs +++ b/csharp/src/Google.Protobuf/WellKnownTypes/Type.cs @@ -223,10 +223,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -495,10 +493,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -717,10 +713,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -875,10 +869,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -1015,10 +1007,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; diff --git a/csharp/src/Google.Protobuf/WellKnownTypes/Wrappers.cs b/csharp/src/Google.Protobuf/WellKnownTypes/Wrappers.cs index 2b3814cc..19ed599d 100644 --- a/csharp/src/Google.Protobuf/WellKnownTypes/Wrappers.cs +++ b/csharp/src/Google.Protobuf/WellKnownTypes/Wrappers.cs @@ -135,10 +135,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -242,10 +240,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -349,10 +345,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -456,10 +450,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -563,10 +555,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -670,10 +660,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -777,10 +765,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -884,10 +870,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; @@ -991,10 +975,8 @@ namespace Google.Protobuf.WellKnownTypes { public void MergeFrom(pb::CodedInputStream input) { uint tag; - while (input.ReadTag(out tag)) { + while ((tag = input.ReadTag()) != 0) { switch(tag) { - case 0: - throw pb::InvalidProtocolBufferException.InvalidTag(); default: if (pb::WireFormat.IsEndGroupTag(tag)) { return; |