|
@@ -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>
|
|
|
|
- /// <para>
|
|
|
|
- /// If fieldTag is non-zero and ReadTag returns true then the value in fieldName
|
|
|
|
- /// 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>
|
|
|
|
|
|
+ /// <param name="fieldTag">The 'tag' of the field (id * 8 + wire-format)</param>
|
|
|
|
+ /// <param name="fieldName">Not Supported - For protobuffer streams, this parameter is always null</param>
|
|
|
|
+ /// <returns>true if the next fieldTag was read</returns>
|
|
[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.
|