aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffers/CodedInputStream.cs
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2011-08-07 18:03:40 +0100
committerJon Skeet <skeet@pobox.com>2011-08-07 18:03:40 +0100
commitcdb4518ae03ca02ee174deea1826252127ded3eb (patch)
tree1b6b3252a77748da1bc0a4cf0b0b7ef5f5122382 /src/ProtocolBuffers/CodedInputStream.cs
parent0f3540e24b7b5cf66b59b97cb824fd5449fb77b4 (diff)
downloadprotobuf-cdb4518ae03ca02ee174deea1826252127ded3eb.tar.gz
protobuf-cdb4518ae03ca02ee174deea1826252127ded3eb.tar.bz2
protobuf-cdb4518ae03ca02ee174deea1826252127ded3eb.zip
Overload of ContinueArray for situations where we know in advance that the array isn't packed.
Diffstat (limited to 'src/ProtocolBuffers/CodedInputStream.cs')
-rw-r--r--src/ProtocolBuffers/CodedInputStream.cs29
1 files changed, 22 insertions, 7 deletions
diff --git a/src/ProtocolBuffers/CodedInputStream.cs b/src/ProtocolBuffers/CodedInputStream.cs
index 09f698a1..1e179509 100644
--- a/src/ProtocolBuffers/CodedInputStream.cs
+++ b/src/ProtocolBuffers/CodedInputStream.cs
@@ -530,6 +530,21 @@ namespace Google.ProtocolBuffers
return true;
}
+ private bool ContinueArray(uint currentTag)
+ {
+ string ignore;
+ uint next;
+ if (PeekNextTag(out next, out ignore))
+ {
+ if (next == currentTag)
+ {
+ hasNextTag = false;
+ return true;
+ }
+ }
+ return false;
+ }
+
/// <summary>
/// Returns true if the next tag is also part of the same unpacked array
/// </summary>
@@ -588,7 +603,7 @@ namespace Google.ProtocolBuffers
{
list.Add(value);
}
- } while (ContinueArray(fieldTag, false, 0));
+ } while (ContinueArray(fieldTag));
}
}
@@ -600,7 +615,7 @@ namespace Google.ProtocolBuffers
{
ReadString(ref tmp);
list.Add(tmp);
- } while (ContinueArray(fieldTag, false, 0));
+ } while (ContinueArray(fieldTag));
}
[CLSCompliant(false)]
@@ -611,7 +626,7 @@ namespace Google.ProtocolBuffers
{
ReadBytes(ref tmp);
list.Add(tmp);
- } while (ContinueArray(fieldTag, false, 0));
+ } while (ContinueArray(fieldTag));
}
[CLSCompliant(false)]
@@ -869,7 +884,7 @@ namespace Google.ProtocolBuffers
}
unknown.Add(unkval);
}
- } while (ContinueArray(fieldTag, false, 0));
+ } while (ContinueArray(fieldTag));
}
}
@@ -921,7 +936,7 @@ namespace Google.ProtocolBuffers
}
unknown.Add(unkval);
}
- } while (ContinueArray(fieldTag, false, 0));
+ } while (ContinueArray(fieldTag));
}
}
@@ -934,7 +949,7 @@ namespace Google.ProtocolBuffers
IBuilderLite builder = messageType.WeakCreateBuilderForType();
ReadMessage(builder, registry);
list.Add((T) builder.WeakBuildPartial());
- } while (ContinueArray(fieldTag, false, 0));
+ } while (ContinueArray(fieldTag));
}
[CLSCompliant(false)]
@@ -946,7 +961,7 @@ namespace Google.ProtocolBuffers
IBuilderLite builder = messageType.WeakCreateBuilderForType();
ReadGroup(WireFormat.GetTagFieldNumber(fieldTag), builder, registry);
list.Add((T) builder.WeakBuildPartial());
- } while (ContinueArray(fieldTag, false, 0));
+ } while (ContinueArray(fieldTag));
}
/// <summary>