Commit 123e5349 authored by csharptest's avatar csharptest Committed by rogerk

Canged CodedInputStream.ReadTag to use boolean result with out params to

support reading a field name rather than a field tag.
parent ffafdaa0
......@@ -287,14 +287,12 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -327,6 +325,11 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -582,14 +585,12 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -624,6 +625,11 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -899,14 +905,12 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -929,6 +933,11 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......
......@@ -615,19 +615,21 @@ namespace Google.ProtocolBuffers.ProtoGen
{
writer.WriteLine("pb::UnknownFieldSet.Builder unknownFields = null;");
}
writer.WriteLine("while (true) {");
writer.WriteLine("uint tag;");
writer.WriteLine("string field_name;");
writer.WriteLine("while (input.ReadTag(out tag, out field_name)) {");
writer.Indent();
writer.WriteLine("uint tag = input.ReadTag();");
writer.WriteLine("switch (tag) {");
writer.Indent();
writer.WriteLine("case 0: {"); // 0 signals EOF / limit reached
if (!UseLiteRuntime)
{
writer.WriteLine(" if (unknownFields != null) {");
writer.WriteLine(" this.UnknownFields = unknownFields.Build();");
writer.WriteLine(" }");
}
writer.WriteLine(" return this;");
//if (!UseLiteRuntime)
//{
// writer.WriteLine(" if (unknownFields != null) {");
// writer.WriteLine(" this.UnknownFields = unknownFields.Build();");
// writer.WriteLine(" }");
//}
//writer.WriteLine(" return this;");
writer.WriteLine(" throw InvalidProtocolBufferException.InvalidTag();");
writer.WriteLine("}");
writer.WriteLine("default: {");
writer.WriteLine(" if (pb::WireFormat.IsEndGroupTag(tag)) {");
......@@ -663,6 +665,14 @@ namespace Google.ProtocolBuffers.ProtoGen
writer.WriteLine("}");
writer.Outdent();
writer.WriteLine("}");
writer.WriteLine();
if (!UseLiteRuntime)
{
writer.WriteLine("if (unknownFields != null) {");
writer.WriteLine(" this.UnknownFields = unknownFields.Build();");
writer.WriteLine("}");
}
writer.WriteLine("return this;");
writer.Outdent();
writer.WriteLine("}");
writer.WriteLine();
......
......@@ -283,16 +283,16 @@ namespace Google.ProtocolBuffers
CodedInputStream input2 = CodedInputStream.CreateInstance(rawBytes);
UnknownFieldSet.Builder unknownFields = UnknownFieldSet.CreateBuilder();
while (true)
uint tag;
string name;
while (input1.ReadTag(out tag, out name))
{
uint tag = input1.ReadTag();
Assert.AreEqual(tag, input2.ReadTag());
if (tag == 0)
{
break;
}
uint tag2;
Assert.IsTrue(input2.ReadTag(out tag2, out name));
Assert.AreEqual(tag, tag2);
unknownFields.MergeFieldFrom(tag, input1);
input2.SkipField(tag);
input2.SkipField();
}
}
......@@ -355,7 +355,10 @@ namespace Google.ProtocolBuffers
ms.Position = 0;
CodedInputStream input = CodedInputStream.CreateInstance(ms);
Assert.AreEqual(tag, input.ReadTag());
uint testtag;
string ignore;
Assert.IsTrue(input.ReadTag(out testtag, out ignore));
Assert.AreEqual(tag, testtag);
try
{
......@@ -497,7 +500,12 @@ namespace Google.ProtocolBuffers
ms.Position = 0;
CodedInputStream input = CodedInputStream.CreateInstance(ms);
Assert.AreEqual(tag, input.ReadTag());
uint testtag;
string ignored;
Assert.IsTrue(input.ReadTag(out testtag, out ignored));
Assert.AreEqual(tag, testtag);
string text = input.ReadString();
Assert.AreEqual('\ufffd', text[0]);
}
......
......@@ -259,14 +259,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -295,6 +293,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......
......@@ -253,14 +253,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -292,6 +290,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......
......@@ -1069,14 +1069,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1262,6 +1260,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -2579,14 +2582,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -2683,6 +2684,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -3570,14 +3576,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -3663,6 +3667,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -4736,14 +4745,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -4882,6 +4889,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -5838,14 +5850,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -5906,6 +5916,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......
......@@ -207,11 +207,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -226,6 +227,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......
......@@ -232,14 +232,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -260,6 +258,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......
......@@ -250,14 +250,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -274,6 +272,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
}
......@@ -449,14 +452,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -482,6 +483,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -695,14 +701,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -723,6 +727,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -918,14 +927,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -946,6 +953,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -1191,14 +1203,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1223,6 +1233,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -1416,14 +1431,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1446,6 +1459,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......
......@@ -247,14 +247,12 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -275,6 +273,11 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......
......@@ -252,14 +252,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -280,6 +278,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -533,14 +536,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -565,6 +566,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -762,14 +768,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -792,6 +796,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -1034,14 +1043,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1071,6 +1078,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......
......@@ -320,14 +320,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -360,6 +358,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -561,14 +564,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -585,6 +586,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
}
......@@ -819,14 +825,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -859,6 +863,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -1195,14 +1204,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1254,6 +1261,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -1613,14 +1625,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1641,6 +1651,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......
......@@ -173,17 +173,13 @@ namespace Google.ProtocolBuffers
CodedInputStream input = data.CreateCodedInput();
uint previousTag = 0;
while (true)
uint tag;
string name;
while (input.ReadTag(out tag, out name))
{
uint tag = input.ReadTag();
if (tag == 0)
{
break;
}
Assert.IsTrue(tag > previousTag);
previousTag = tag;
input.SkipField(tag);
input.SkipField();
}
}
......
......@@ -162,29 +162,40 @@ namespace Google.ProtocolBuffers
#endregion
#region Reading of tags etc
/// <summary>
/// Attempt to read a field tag, returning 0 if we have reached the end
/// of the input data. Protocol message parsers use this to read tags,
/// since a protocol message may legally end wherever a tag occurs, and
/// zero is not a valid tag number.
/// Attempt to read a field tag, returning false if we have reached the end
/// of the input data.
/// </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>
[CLSCompliant(false)]
public uint ReadTag()
public bool ReadTag(out uint fieldTag, out string fieldName)
{
fieldName = null;
if (IsAtEnd)
{
lastTag = 0;
return 0;
lastTag = fieldTag = 0;
return false;
}
lastTag = ReadRawVarint32();
lastTag = fieldTag = ReadRawVarint32();
if (lastTag == 0)
{
// If we actually read zero, that's not a valid tag.
throw InvalidProtocolBufferException.InvalidTag();
}
return lastTag;
return true;
}
/// <summary>
......@@ -1030,8 +1041,9 @@ namespace Google.ProtocolBuffers
/// <returns>false if the tag is an end-group tag, in which case
/// nothing is skipped. Otherwise, returns true.</returns>
[CLSCompliant(false)]
public bool SkipField(uint tag)
public bool SkipField()
{
uint tag = lastTag;
switch (WireFormat.GetTagWireType(tag))
{
case WireFormat.WireType.Varint:
......@@ -1065,10 +1077,11 @@ namespace Google.ProtocolBuffers
/// </summary>
public void SkipMessage()
{
while (true)
uint tag;
string name;
while (ReadTag(out tag, out name))
{
uint tag = ReadTag();
if (tag == 0 || !SkipField(tag))
if (!SkipField())
{
return;
}
......
......@@ -514,14 +514,12 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -598,6 +596,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -1012,14 +1015,12 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1040,6 +1041,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -1234,14 +1240,12 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1262,6 +1266,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......@@ -1456,14 +1465,12 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1484,6 +1491,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......
......@@ -168,7 +168,7 @@ namespace Google.ProtocolBuffers
if (unknown)
{
// Unknown field or wrong wire type. Skip.
return input.SkipField(tag);
return input.SkipField();
}
if (packed)
......
......@@ -101,7 +101,7 @@ namespace Google.ProtocolBuffers
protected virtual bool ParseUnknownField(CodedInputStream input,
ExtensionRegistry extensionRegistry, uint tag)
{
return input.SkipField(tag);
return input.SkipField();
}
/// <summary>
......
......@@ -71,7 +71,7 @@ namespace Google.ProtocolBuffers
"CodedInputStream encountered a malformed varint.");
}
internal static InvalidProtocolBufferException InvalidTag()
public static InvalidProtocolBufferException InvalidTag()
{
return new InvalidProtocolBufferException(
"Protocol message contained an invalid tag (zero).");
......
......@@ -219,13 +219,14 @@ namespace Google.ProtocolBuffers
CodedInputStream input = CodedInputStream.CreateInstance(stream);
input.SetSizeLimit(sizeLimit);
uint tag;
while ((tag = input.ReadTag()) != 0)
string name;
while (input.ReadTag(out tag, out name))
{
if (tag != ExpectedTag)
{
if ((tag == 0 && name == "item") || (tag == ExpectedTag))
yield return messageReader(input, extensionRegistry);
else
throw InvalidProtocolBufferException.InvalidMessageStreamTag();
}
yield return messageReader(input, extensionRegistry);
input.ResetSizeCounter();
}
}
......
......@@ -419,13 +419,19 @@ namespace Google.ProtocolBuffers
/// </summary>
public Builder MergeFrom(CodedInputStream input)
{
while (true)
uint tag;
string name;
while (input.ReadTag(out tag, out name))
{
uint tag = input.ReadTag();
if (tag == 0 || !MergeFieldFrom(tag, input))
if (tag == 0)
{
if (input.SkipField())
continue; //can't merge unknown without field tag
break;
}
if(!MergeFieldFrom(tag, input))
break;
}
return this;
}
......@@ -581,11 +587,14 @@ namespace Google.ProtocolBuffers
internal void MergeFrom(CodedInputStream input, ExtensionRegistry extensionRegistry, IBuilder builder)
{
while (true)
uint tag;
string name;
while (input.ReadTag(out tag, out name))
{
uint tag = input.ReadTag();
if (tag == 0)
{
if (input.SkipField())
continue; //can't merge unknown without field tag
break;
}
......@@ -765,11 +774,14 @@ namespace Google.ProtocolBuffers
IBuilderLite subBuilder = null;
FieldDescriptor field = null;
while (true)
uint tag;
string name;
while (input.ReadTag(out tag, out name))
{
uint tag = input.ReadTag();
if (tag == 0)
{
if (input.SkipField())
continue; //can't merge unknown without field tag
break;
}
......@@ -833,7 +845,7 @@ namespace Google.ProtocolBuffers
else
{
// Unknown tag. Skip it.
if (!input.SkipField(tag))
if (!input.SkipField())
{
break; // end of group
}
......
......@@ -247,11 +247,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -274,6 +275,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -541,11 +544,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -568,6 +572,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -876,11 +882,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -911,6 +918,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -1321,11 +1330,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1369,6 +1379,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -1706,11 +1718,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1725,6 +1738,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......
......@@ -207,11 +207,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -226,6 +227,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......
......@@ -232,14 +232,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
pb::UnknownFieldSet.Builder unknownFields = null;
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -260,6 +258,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
if (unknownFields != null) {
this.UnknownFields = unknownFields.Build();
}
return this;
}
......
......@@ -196,11 +196,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -220,6 +221,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......
......@@ -1250,11 +1250,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1269,6 +1270,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -1465,11 +1468,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1484,6 +1488,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -1680,11 +1686,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -1699,6 +1706,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -3607,11 +3616,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -3958,6 +3968,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -5724,11 +5736,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -5743,6 +5756,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -6430,11 +6445,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -6575,6 +6591,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -7123,11 +7141,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -7138,6 +7157,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
}
......@@ -7316,11 +7337,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -7335,6 +7357,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -7531,11 +7555,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -7550,6 +7575,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......@@ -7732,11 +7759,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -7747,6 +7775,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
}
......@@ -7905,11 +7935,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -7920,6 +7951,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
}
......@@ -8098,11 +8131,12 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
while (true) {
uint tag = input.ReadTag();
uint tag;
string field_name;
while (input.ReadTag(out tag, out field_name)) {
switch (tag) {
case 0: {
return this;
throw InvalidProtocolBufferException.InvalidTag();
}
default: {
if (pb::WireFormat.IsEndGroupTag(tag)) {
......@@ -8117,6 +8151,8 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
}
return this;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment