Changes from review f60f2676f7fa

pull/288/head
csharptest 14 years ago committed by rogerk
parent 3aa06356ac
commit 9b3de69224
  1. 23
      src/ProtocolBuffers/CodedInputStream.cs

@ -190,17 +190,9 @@ namespace Google.ProtocolBuffers
/// Attempt to read a field tag, returning false if we have reached the end /// Attempt to read a field tag, returning false if we have reached the end
/// of the input data. /// of the input data.
/// </summary> /// </summary>
/// <remarks> /// <param name="fieldTag">The 'tag' of the field (id * 8 + wire-format)</param>
/// <para> /// <param name="fieldName">Not Supported - For protobuffer streams, this parameter is always null</param>
/// If fieldTag is non-zero and ReadTag returns true then the value in fieldName /// <returns>true if the next fieldTag was read</returns>
/// may or may not be populated. However, if fieldTag is zero and ReadTag returns
/// true, then fieldName should be populated with a non-null field name.
/// </para><para>
/// In other words if ReadTag returns true then either fieldTag will be non-zero OR
/// fieldName will be non-zero. In some cases both may be populated, however the
/// builders will always prefer the fieldTag over fieldName.
/// </para>
/// </remarks>
[CLSCompliant(false)] [CLSCompliant(false)]
public bool ReadTag(out uint fieldTag, out string fieldName) public bool ReadTag(out uint fieldTag, out string fieldName)
{ {
@ -208,18 +200,21 @@ namespace Google.ProtocolBuffers
if (hasNextTag) if (hasNextTag)
{ {
lastTag = fieldTag = nextTag; fieldTag = nextTag;
lastTag = fieldTag;
hasNextTag = false; hasNextTag = false;
return true; return true;
} }
if (IsAtEnd) if (IsAtEnd)
{ {
lastTag = fieldTag = 0; fieldTag = 0;
lastTag = fieldTag;
return false; return false;
} }
lastTag = fieldTag = ReadRawVarint32(); fieldTag = ReadRawVarint32();
lastTag = fieldTag;
if (lastTag == 0) if (lastTag == 0)
{ {
// If we actually read zero, that's not a valid tag. // If we actually read zero, that's not a valid tag.

Loading…
Cancel
Save