aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--protos/extest/unittest_issues.proto9
-rw-r--r--src/AddressBook/AddressBookProtos.cs106
-rw-r--r--src/ProtoGen/MessageFieldGenerator.cs6
-rw-r--r--src/ProtoGen/MessageGenerator.cs45
-rw-r--r--src/ProtoGen/RepeatedEnumFieldGenerator.cs2
-rw-r--r--src/ProtoGen/RepeatedMessageFieldGenerator.cs2
-rw-r--r--src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs2
-rw-r--r--src/ProtocolBuffers.Test/ReusableBuilderTest.cs13
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs34
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs596
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs42
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs910
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs198
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs198
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs34
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs34
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs212
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs34
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs114
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs1622
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs148
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs226
-rw-r--r--src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs136
-rw-r--r--src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs696
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs294
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs176
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs34
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs34
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs40
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs604
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs1622
31 files changed, 4825 insertions, 3398 deletions
diff --git a/protos/extest/unittest_issues.proto b/protos/extest/unittest_issues.proto
index b725b3f1..5e0da0ae 100644
--- a/protos/extest/unittest_issues.proto
+++ b/protos/extest/unittest_issues.proto
@@ -86,6 +86,15 @@ message NumberField {
optional int32 _01 = 1;
}
+// Issue 28: Circular message dependencies result in null defaults for DefaultInstance
+
+message MyMessageAReferenceB {
+ required MyMessageBReferenceA value = 1;
+}
+
+message MyMessageBReferenceA {
+ required MyMessageAReferenceB value = 1;
+}
// issue 19 - negative enum values
diff --git a/src/AddressBook/AddressBookProtos.cs b/src/AddressBook/AddressBookProtos.cs
index 1bad0888..7fc1c64d 100644
--- a/src/AddressBook/AddressBookProtos.cs
+++ b/src/AddressBook/AddressBookProtos.cs
@@ -69,7 +69,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Person : pb::GeneratedMessage<Person, Person.Builder> {
private Person() { }
- private static readonly Person defaultInstance = new Builder().BuildPartial();
+ private static readonly Person defaultInstance = new Person().MakeReadOnly();
private static readonly string[] _personFieldNames = new string[] { "email", "id", "name", "phone" };
private static readonly uint[] _personFieldTags = new uint[] { 26, 16, 10, 34 };
public static Person DefaultInstance {
@@ -77,7 +77,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
public override Person DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override Person ThisMessage {
@@ -110,7 +110,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class PhoneNumber : pb::GeneratedMessage<PhoneNumber, PhoneNumber.Builder> {
private PhoneNumber() { }
- private static readonly PhoneNumber defaultInstance = new Builder().BuildPartial();
+ private static readonly PhoneNumber defaultInstance = new PhoneNumber().MakeReadOnly();
private static readonly string[] _phoneNumberFieldNames = new string[] { "number", "type" };
private static readonly uint[] _phoneNumberFieldTags = new uint[] { 10, 16 };
public static PhoneNumber DefaultInstance {
@@ -118,7 +118,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
public override PhoneNumber DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override PhoneNumber ThisMessage {
@@ -221,6 +221,10 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
public static PhoneNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private PhoneNumber MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -236,22 +240,22 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new PhoneNumber();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(PhoneNumber cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- PhoneNumber result;
+ private bool resultIsReadOnly;
+ private PhoneNumber result;
private PhoneNumber PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
PhoneNumber original = result;
result = new PhoneNumber();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -266,13 +270,13 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
public override Builder Clear() {
- result = DefaultInstance ?? new PhoneNumber();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -288,11 +292,11 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
public override PhoneNumber BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -557,6 +561,11 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
public static Person ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private Person MakeReadOnly() {
+ phone_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -572,22 +581,22 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new Person();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(Person cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- Person result;
+ private bool resultIsReadOnly;
+ private Person result;
private Person PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
Person original = result;
result = new Person();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -602,13 +611,13 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
public override Builder Clear() {
- result = DefaultInstance ?? new Person();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -624,12 +633,11 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
public override Person BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.phone_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -841,7 +849,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class AddressBook : pb::GeneratedMessage<AddressBook, AddressBook.Builder> {
private AddressBook() { }
- private static readonly AddressBook defaultInstance = new Builder().BuildPartial();
+ private static readonly AddressBook defaultInstance = new AddressBook().MakeReadOnly();
private static readonly string[] _addressBookFieldNames = new string[] { "person" };
private static readonly uint[] _addressBookFieldTags = new uint[] { 10 };
public static AddressBook DefaultInstance {
@@ -849,7 +857,7 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
public override AddressBook DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override AddressBook ThisMessage {
@@ -940,6 +948,11 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
public static AddressBook ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private AddressBook MakeReadOnly() {
+ person_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -955,22 +968,22 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new AddressBook();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(AddressBook cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- AddressBook result;
+ private bool resultIsReadOnly;
+ private AddressBook result;
private AddressBook PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
AddressBook original = result;
result = new AddressBook();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -985,13 +998,13 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
public override Builder Clear() {
- result = DefaultInstance ?? new AddressBook();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1007,12 +1020,11 @@ namespace Google.ProtocolBuffers.Examples.AddressBook {
}
public override AddressBook BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.person_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtoGen/MessageFieldGenerator.cs b/src/ProtoGen/MessageFieldGenerator.cs
index 8e2691ee..25b58a60 100644
--- a/src/ProtoGen/MessageFieldGenerator.cs
+++ b/src/ProtoGen/MessageFieldGenerator.cs
@@ -48,14 +48,14 @@ namespace Google.ProtocolBuffers.ProtoGen
public void GenerateMembers(TextGenerator writer)
{
writer.WriteLine("private bool has{0};", PropertyName);
- writer.WriteLine("private {0} {1}_ = {2};", TypeName, Name, DefaultValue);
+ writer.WriteLine("private {0} {1}_;", TypeName, Name);
AddDeprecatedFlag(writer);
writer.WriteLine("public bool Has{0} {{", PropertyName);
writer.WriteLine(" get {{ return has{0}; }}", PropertyName);
writer.WriteLine("}");
AddDeprecatedFlag(writer);
writer.WriteLine("public {0} {1} {{", TypeName, PropertyName);
- writer.WriteLine(" get {{ return {0}_; }}", Name);
+ writer.WriteLine(" get {{ return {0}_ ?? {1}; }}", Name, DefaultValue);
writer.WriteLine("}");
}
@@ -104,7 +104,7 @@ namespace Google.ProtocolBuffers.ProtoGen
writer.WriteLine("public Builder Clear{0}() {{", PropertyName);
writer.WriteLine(" PrepareBuilder();");
writer.WriteLine(" result.has{0} = false;", PropertyName);
- writer.WriteLine(" result.{0}_ = {1};", Name, DefaultValue);
+ writer.WriteLine(" result.{0}_ = null;", Name);
writer.WriteLine(" return this;");
writer.WriteLine("}");
}
diff --git a/src/ProtoGen/MessageGenerator.cs b/src/ProtoGen/MessageGenerator.cs
index 89c4aaec..e9a037bf 100644
--- a/src/ProtoGen/MessageGenerator.cs
+++ b/src/ProtoGen/MessageGenerator.cs
@@ -183,7 +183,7 @@ namespace Google.ProtocolBuffers.ProtoGen
writer.Indent();
writer.WriteLine("private {0}() {{ }}", ClassName);
// Must call BuildPartial() to make sure all lists are made read-only
- writer.WriteLine("private static readonly {0} defaultInstance = new Builder().BuildPartial();", ClassName);
+ writer.WriteLine("private static readonly {0} defaultInstance = new {0}().MakeReadOnly();", ClassName);
if (OptimizeSpeed)
{
@@ -204,7 +204,7 @@ namespace Google.ProtocolBuffers.ProtoGen
writer.WriteLine("}");
writer.WriteLine();
writer.WriteLine("public override {0} DefaultInstanceForType {{", ClassName);
- writer.WriteLine(" get { return defaultInstance; }");
+ writer.WriteLine(" get { return DefaultInstance; }");
writer.WriteLine("}");
writer.WriteLine();
writer.WriteLine("protected override {0} ThisMessage {{", ClassName);
@@ -552,6 +552,17 @@ namespace Google.ProtocolBuffers.ProtoGen
private void GenerateBuilder(TextGenerator writer)
{
+ writer.WriteLine("private {0} MakeReadOnly() {{", ClassName);
+ writer.Indent();
+ foreach (FieldDescriptor field in Descriptor.Fields)
+ {
+ CreateFieldGenerator(field).GenerateBuildingCode(writer);
+ }
+ writer.WriteLine("return this;");
+ writer.Outdent();
+ writer.WriteLine("}");
+ writer.WriteLine();
+
writer.WriteLine("public static Builder CreateBuilder() { return new Builder(); }");
writer.WriteLine("public override Builder ToBuilder() { return CreateBuilder(this); }");
writer.WriteLine("public override Builder CreateBuilderForType() { return new Builder(); }");
@@ -594,23 +605,23 @@ namespace Google.ProtocolBuffers.ProtoGen
//default constructor
writer.WriteLine("public Builder() {");
//Durring static initialization of message, DefaultInstance is expected to return null.
- writer.WriteLine(" result = DefaultInstance ?? new {0}();", ClassName);
- writer.WriteLine(" builderIsReadOnly = result == DefaultInstance;");
+ writer.WriteLine(" result = DefaultInstance;");
+ writer.WriteLine(" resultIsReadOnly = true;");
writer.WriteLine("}");
//clone constructor
writer.WriteLine("internal Builder({0} cloneFrom) {{", ClassName);
writer.WriteLine(" result = cloneFrom;");
- writer.WriteLine(" builderIsReadOnly = true;");
+ writer.WriteLine(" resultIsReadOnly = true;");
writer.WriteLine("}");
writer.WriteLine();
- writer.WriteLine("bool builderIsReadOnly;");
- writer.WriteLine("{0} result;", ClassName);
+ writer.WriteLine("private bool resultIsReadOnly;");
+ writer.WriteLine("private {0} result;", ClassName);
writer.WriteLine();
writer.WriteLine("private {0} PrepareBuilder() {{", ClassName);
- writer.WriteLine(" if (builderIsReadOnly) {");
+ writer.WriteLine(" if (resultIsReadOnly) {");
writer.WriteLine(" {0} original = result;", ClassName);
writer.WriteLine(" result = new {0}();", ClassName);
- writer.WriteLine(" builderIsReadOnly = false;");
+ writer.WriteLine(" resultIsReadOnly = false;");
writer.WriteLine(" MergeFrom(original);");
writer.WriteLine(" }");
writer.WriteLine(" return result;");
@@ -626,13 +637,13 @@ namespace Google.ProtocolBuffers.ProtoGen
writer.WriteLine();
//Not actually expecting that DefaultInstance would ever be null here; however, we will ensure it does not break
writer.WriteLine("public override Builder Clear() {");
- writer.WriteLine(" result = DefaultInstance ?? new {0}();", ClassName);
- writer.WriteLine(" builderIsReadOnly = true;");
+ writer.WriteLine(" result = DefaultInstance;", ClassName);
+ writer.WriteLine(" resultIsReadOnly = true;");
writer.WriteLine(" return this;");
writer.WriteLine("}");
writer.WriteLine();
writer.WriteLine("public override Builder Clone() {");
- writer.WriteLine(" if (builderIsReadOnly) {");
+ writer.WriteLine(" if (resultIsReadOnly) {");
writer.WriteLine(" return new Builder(result);");
writer.WriteLine(" } else {");
writer.WriteLine(" return new Builder().MergeFrom(result);");
@@ -653,15 +664,11 @@ namespace Google.ProtocolBuffers.ProtoGen
writer.WriteLine("public override {0} BuildPartial() {{", ClassName);
writer.Indent();
- writer.WriteLine("if (builderIsReadOnly) {");
+ writer.WriteLine("if (resultIsReadOnly) {");
writer.WriteLine(" return result;");
writer.WriteLine("}");
- foreach (FieldDescriptor field in Descriptor.Fields)
- {
- CreateFieldGenerator(field).GenerateBuildingCode(writer);
- }
- writer.WriteLine("builderIsReadOnly = true;");
- writer.WriteLine("return result;");
+ writer.WriteLine("resultIsReadOnly = true;");
+ writer.WriteLine("return result.MakeReadOnly();");
writer.Outdent();
writer.WriteLine("}");
writer.WriteLine();
diff --git a/src/ProtoGen/RepeatedEnumFieldGenerator.cs b/src/ProtoGen/RepeatedEnumFieldGenerator.cs
index aacee937..8c9f17b8 100644
--- a/src/ProtoGen/RepeatedEnumFieldGenerator.cs
+++ b/src/ProtoGen/RepeatedEnumFieldGenerator.cs
@@ -120,7 +120,7 @@ namespace Google.ProtocolBuffers.ProtoGen
public void GenerateBuildingCode(TextGenerator writer)
{
- writer.WriteLine("result.{0}_.MakeReadOnly();", Name);
+ writer.WriteLine("{0}_.MakeReadOnly();", Name);
}
public void GenerateParsingCode(TextGenerator writer)
diff --git a/src/ProtoGen/RepeatedMessageFieldGenerator.cs b/src/ProtoGen/RepeatedMessageFieldGenerator.cs
index 6cc1e631..a9a0143c 100644
--- a/src/ProtoGen/RepeatedMessageFieldGenerator.cs
+++ b/src/ProtoGen/RepeatedMessageFieldGenerator.cs
@@ -134,7 +134,7 @@ namespace Google.ProtocolBuffers.ProtoGen
public void GenerateBuildingCode(TextGenerator writer)
{
- writer.WriteLine("result.{0}_.MakeReadOnly();", Name);
+ writer.WriteLine("{0}_.MakeReadOnly();", Name);
}
public void GenerateParsingCode(TextGenerator writer)
diff --git a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
index 645dce5c..b795f3b6 100644
--- a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
+++ b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
@@ -122,7 +122,7 @@ namespace Google.ProtocolBuffers.ProtoGen
public void GenerateBuildingCode(TextGenerator writer)
{
- writer.WriteLine("result.{0}_.MakeReadOnly();", Name);
+ writer.WriteLine("{0}_.MakeReadOnly();", Name);
}
public void GenerateParsingCode(TextGenerator writer)
diff --git a/src/ProtocolBuffers.Test/ReusableBuilderTest.cs b/src/ProtocolBuffers.Test/ReusableBuilderTest.cs
index 194313cb..58d643ed 100644
--- a/src/ProtocolBuffers.Test/ReusableBuilderTest.cs
+++ b/src/ProtocolBuffers.Test/ReusableBuilderTest.cs
@@ -1,16 +1,29 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.Text;
using Google.ProtocolBuffers.Collections;
using NUnit.Framework;
using Google.ProtocolBuffers.TestProtos;
using Google.ProtocolBuffers.Serialization;
+using UnitTest.Issues.TestProtos;
namespace Google.ProtocolBuffers
{
[TestFixture]
public class ReusableBuilderTest
{
+ [Test, Description("Issue 28: Circular message dependencies result in null defaults for DefaultInstance")]
+ public void EnsureStaticCicularReference()
+ {
+ MyMessageAReferenceB ab = MyMessageAReferenceB.DefaultInstance;
+ Assert.IsNotNull(ab);
+ Assert.IsNotNull(ab.Value);
+ MyMessageBReferenceA ba = MyMessageBReferenceA.DefaultInstance;
+ Assert.IsNotNull(ba);
+ Assert.IsNotNull(ba.Value);
+ }
+
[Test]
public void TestModifyDefaultInstance()
{
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
index 94ced3d5..13696c2d 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
@@ -61,7 +61,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OptionsMessage : pb::GeneratedMessage<OptionsMessage, OptionsMessage.Builder> {
private OptionsMessage() { }
- private static readonly OptionsMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly OptionsMessage defaultInstance = new OptionsMessage().MakeReadOnly();
private static readonly string[] _optionsMessageFieldNames = new string[] { "customized", "normal", "options_message" };
private static readonly uint[] _optionsMessageFieldTags = new uint[] { 26, 10, 18 };
public static OptionsMessage DefaultInstance {
@@ -69,7 +69,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionsMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override OptionsMessage ThisMessage {
@@ -187,6 +187,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static OptionsMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private OptionsMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -202,22 +206,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new OptionsMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(OptionsMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- OptionsMessage result;
+ private bool resultIsReadOnly;
+ private OptionsMessage result;
private OptionsMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
OptionsMessage original = result;
result = new OptionsMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -232,13 +236,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new OptionsMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -254,11 +258,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionsMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
index a3265da7..93d7fb9c 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
@@ -401,7 +401,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMessageWithCustomOptions : pb::GeneratedMessage<TestMessageWithCustomOptions, TestMessageWithCustomOptions.Builder> {
private TestMessageWithCustomOptions() { }
- private static readonly TestMessageWithCustomOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMessageWithCustomOptions defaultInstance = new TestMessageWithCustomOptions().MakeReadOnly();
private static readonly string[] _testMessageWithCustomOptionsFieldNames = new string[] { "field1" };
private static readonly uint[] _testMessageWithCustomOptionsFieldTags = new uint[] { 10 };
public static TestMessageWithCustomOptions DefaultInstance {
@@ -409,7 +409,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMessageWithCustomOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMessageWithCustomOptions ThisMessage {
@@ -510,6 +510,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMessageWithCustomOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMessageWithCustomOptions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -525,22 +529,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMessageWithCustomOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMessageWithCustomOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMessageWithCustomOptions result;
+ private bool resultIsReadOnly;
+ private TestMessageWithCustomOptions result;
private TestMessageWithCustomOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMessageWithCustomOptions original = result;
result = new TestMessageWithCustomOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -555,13 +559,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMessageWithCustomOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -577,11 +581,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMessageWithCustomOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -687,7 +691,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class CustomOptionFooRequest : pb::GeneratedMessage<CustomOptionFooRequest, CustomOptionFooRequest.Builder> {
private CustomOptionFooRequest() { }
- private static readonly CustomOptionFooRequest defaultInstance = new Builder().BuildPartial();
+ private static readonly CustomOptionFooRequest defaultInstance = new CustomOptionFooRequest().MakeReadOnly();
private static readonly string[] _customOptionFooRequestFieldNames = new string[] { };
private static readonly uint[] _customOptionFooRequestFieldTags = new uint[] { };
public static CustomOptionFooRequest DefaultInstance {
@@ -695,7 +699,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override CustomOptionFooRequest DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override CustomOptionFooRequest ThisMessage {
@@ -765,6 +769,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static CustomOptionFooRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private CustomOptionFooRequest MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -780,22 +788,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new CustomOptionFooRequest();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(CustomOptionFooRequest cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- CustomOptionFooRequest result;
+ private bool resultIsReadOnly;
+ private CustomOptionFooRequest result;
private CustomOptionFooRequest PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
CustomOptionFooRequest original = result;
result = new CustomOptionFooRequest();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -810,13 +818,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new CustomOptionFooRequest();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -832,11 +840,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override CustomOptionFooRequest BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -914,7 +922,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class CustomOptionFooResponse : pb::GeneratedMessage<CustomOptionFooResponse, CustomOptionFooResponse.Builder> {
private CustomOptionFooResponse() { }
- private static readonly CustomOptionFooResponse defaultInstance = new Builder().BuildPartial();
+ private static readonly CustomOptionFooResponse defaultInstance = new CustomOptionFooResponse().MakeReadOnly();
private static readonly string[] _customOptionFooResponseFieldNames = new string[] { };
private static readonly uint[] _customOptionFooResponseFieldTags = new uint[] { };
public static CustomOptionFooResponse DefaultInstance {
@@ -922,7 +930,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override CustomOptionFooResponse DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override CustomOptionFooResponse ThisMessage {
@@ -992,6 +1000,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static CustomOptionFooResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private CustomOptionFooResponse MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1007,22 +1019,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new CustomOptionFooResponse();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(CustomOptionFooResponse cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- CustomOptionFooResponse result;
+ private bool resultIsReadOnly;
+ private CustomOptionFooResponse result;
private CustomOptionFooResponse PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
CustomOptionFooResponse original = result;
result = new CustomOptionFooResponse();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1037,13 +1049,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new CustomOptionFooResponse();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1059,11 +1071,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override CustomOptionFooResponse BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1141,7 +1153,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class DummyMessageContainingEnum : pb::GeneratedMessage<DummyMessageContainingEnum, DummyMessageContainingEnum.Builder> {
private DummyMessageContainingEnum() { }
- private static readonly DummyMessageContainingEnum defaultInstance = new Builder().BuildPartial();
+ private static readonly DummyMessageContainingEnum defaultInstance = new DummyMessageContainingEnum().MakeReadOnly();
private static readonly string[] _dummyMessageContainingEnumFieldNames = new string[] { };
private static readonly uint[] _dummyMessageContainingEnumFieldTags = new uint[] { };
public static DummyMessageContainingEnum DefaultInstance {
@@ -1149,7 +1161,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override DummyMessageContainingEnum DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override DummyMessageContainingEnum ThisMessage {
@@ -1234,6 +1246,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static DummyMessageContainingEnum ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private DummyMessageContainingEnum MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1249,22 +1265,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new DummyMessageContainingEnum();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(DummyMessageContainingEnum cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- DummyMessageContainingEnum result;
+ private bool resultIsReadOnly;
+ private DummyMessageContainingEnum result;
private DummyMessageContainingEnum PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
DummyMessageContainingEnum original = result;
result = new DummyMessageContainingEnum();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1279,13 +1295,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new DummyMessageContainingEnum();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1301,11 +1317,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override DummyMessageContainingEnum BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1383,7 +1399,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class DummyMessageInvalidAsOptionType : pb::GeneratedMessage<DummyMessageInvalidAsOptionType, DummyMessageInvalidAsOptionType.Builder> {
private DummyMessageInvalidAsOptionType() { }
- private static readonly DummyMessageInvalidAsOptionType defaultInstance = new Builder().BuildPartial();
+ private static readonly DummyMessageInvalidAsOptionType defaultInstance = new DummyMessageInvalidAsOptionType().MakeReadOnly();
private static readonly string[] _dummyMessageInvalidAsOptionTypeFieldNames = new string[] { };
private static readonly uint[] _dummyMessageInvalidAsOptionTypeFieldTags = new uint[] { };
public static DummyMessageInvalidAsOptionType DefaultInstance {
@@ -1391,7 +1407,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override DummyMessageInvalidAsOptionType DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override DummyMessageInvalidAsOptionType ThisMessage {
@@ -1461,6 +1477,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static DummyMessageInvalidAsOptionType ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private DummyMessageInvalidAsOptionType MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1476,22 +1496,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new DummyMessageInvalidAsOptionType();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(DummyMessageInvalidAsOptionType cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- DummyMessageInvalidAsOptionType result;
+ private bool resultIsReadOnly;
+ private DummyMessageInvalidAsOptionType result;
private DummyMessageInvalidAsOptionType PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
DummyMessageInvalidAsOptionType original = result;
result = new DummyMessageInvalidAsOptionType();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1506,13 +1526,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new DummyMessageInvalidAsOptionType();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1528,11 +1548,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override DummyMessageInvalidAsOptionType BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1610,7 +1630,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class CustomOptionMinIntegerValues : pb::GeneratedMessage<CustomOptionMinIntegerValues, CustomOptionMinIntegerValues.Builder> {
private CustomOptionMinIntegerValues() { }
- private static readonly CustomOptionMinIntegerValues defaultInstance = new Builder().BuildPartial();
+ private static readonly CustomOptionMinIntegerValues defaultInstance = new CustomOptionMinIntegerValues().MakeReadOnly();
private static readonly string[] _customOptionMinIntegerValuesFieldNames = new string[] { };
private static readonly uint[] _customOptionMinIntegerValuesFieldTags = new uint[] { };
public static CustomOptionMinIntegerValues DefaultInstance {
@@ -1618,7 +1638,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override CustomOptionMinIntegerValues DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override CustomOptionMinIntegerValues ThisMessage {
@@ -1688,6 +1708,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static CustomOptionMinIntegerValues ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private CustomOptionMinIntegerValues MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1703,22 +1727,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new CustomOptionMinIntegerValues();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(CustomOptionMinIntegerValues cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- CustomOptionMinIntegerValues result;
+ private bool resultIsReadOnly;
+ private CustomOptionMinIntegerValues result;
private CustomOptionMinIntegerValues PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
CustomOptionMinIntegerValues original = result;
result = new CustomOptionMinIntegerValues();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1733,13 +1757,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new CustomOptionMinIntegerValues();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1755,11 +1779,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override CustomOptionMinIntegerValues BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1837,7 +1861,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class CustomOptionMaxIntegerValues : pb::GeneratedMessage<CustomOptionMaxIntegerValues, CustomOptionMaxIntegerValues.Builder> {
private CustomOptionMaxIntegerValues() { }
- private static readonly CustomOptionMaxIntegerValues defaultInstance = new Builder().BuildPartial();
+ private static readonly CustomOptionMaxIntegerValues defaultInstance = new CustomOptionMaxIntegerValues().MakeReadOnly();
private static readonly string[] _customOptionMaxIntegerValuesFieldNames = new string[] { };
private static readonly uint[] _customOptionMaxIntegerValuesFieldTags = new uint[] { };
public static CustomOptionMaxIntegerValues DefaultInstance {
@@ -1845,7 +1869,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override CustomOptionMaxIntegerValues DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override CustomOptionMaxIntegerValues ThisMessage {
@@ -1915,6 +1939,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static CustomOptionMaxIntegerValues ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private CustomOptionMaxIntegerValues MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1930,22 +1958,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new CustomOptionMaxIntegerValues();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(CustomOptionMaxIntegerValues cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- CustomOptionMaxIntegerValues result;
+ private bool resultIsReadOnly;
+ private CustomOptionMaxIntegerValues result;
private CustomOptionMaxIntegerValues PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
CustomOptionMaxIntegerValues original = result;
result = new CustomOptionMaxIntegerValues();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1960,13 +1988,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new CustomOptionMaxIntegerValues();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1982,11 +2010,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override CustomOptionMaxIntegerValues BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -2064,7 +2092,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class CustomOptionOtherValues : pb::GeneratedMessage<CustomOptionOtherValues, CustomOptionOtherValues.Builder> {
private CustomOptionOtherValues() { }
- private static readonly CustomOptionOtherValues defaultInstance = new Builder().BuildPartial();
+ private static readonly CustomOptionOtherValues defaultInstance = new CustomOptionOtherValues().MakeReadOnly();
private static readonly string[] _customOptionOtherValuesFieldNames = new string[] { };
private static readonly uint[] _customOptionOtherValuesFieldTags = new uint[] { };
public static CustomOptionOtherValues DefaultInstance {
@@ -2072,7 +2100,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override CustomOptionOtherValues DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override CustomOptionOtherValues ThisMessage {
@@ -2142,6 +2170,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static CustomOptionOtherValues ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private CustomOptionOtherValues MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -2157,22 +2189,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new CustomOptionOtherValues();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(CustomOptionOtherValues cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- CustomOptionOtherValues result;
+ private bool resultIsReadOnly;
+ private CustomOptionOtherValues result;
private CustomOptionOtherValues PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
CustomOptionOtherValues original = result;
result = new CustomOptionOtherValues();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -2187,13 +2219,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new CustomOptionOtherValues();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -2209,11 +2241,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override CustomOptionOtherValues BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -2291,7 +2323,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SettingRealsFromPositiveInts : pb::GeneratedMessage<SettingRealsFromPositiveInts, SettingRealsFromPositiveInts.Builder> {
private SettingRealsFromPositiveInts() { }
- private static readonly SettingRealsFromPositiveInts defaultInstance = new Builder().BuildPartial();
+ private static readonly SettingRealsFromPositiveInts defaultInstance = new SettingRealsFromPositiveInts().MakeReadOnly();
private static readonly string[] _settingRealsFromPositiveIntsFieldNames = new string[] { };
private static readonly uint[] _settingRealsFromPositiveIntsFieldTags = new uint[] { };
public static SettingRealsFromPositiveInts DefaultInstance {
@@ -2299,7 +2331,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SettingRealsFromPositiveInts DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SettingRealsFromPositiveInts ThisMessage {
@@ -2369,6 +2401,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SettingRealsFromPositiveInts ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SettingRealsFromPositiveInts MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -2384,22 +2420,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SettingRealsFromPositiveInts();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SettingRealsFromPositiveInts cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SettingRealsFromPositiveInts result;
+ private bool resultIsReadOnly;
+ private SettingRealsFromPositiveInts result;
private SettingRealsFromPositiveInts PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SettingRealsFromPositiveInts original = result;
result = new SettingRealsFromPositiveInts();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -2414,13 +2450,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SettingRealsFromPositiveInts();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -2436,11 +2472,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SettingRealsFromPositiveInts BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -2518,7 +2554,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SettingRealsFromNegativeInts : pb::GeneratedMessage<SettingRealsFromNegativeInts, SettingRealsFromNegativeInts.Builder> {
private SettingRealsFromNegativeInts() { }
- private static readonly SettingRealsFromNegativeInts defaultInstance = new Builder().BuildPartial();
+ private static readonly SettingRealsFromNegativeInts defaultInstance = new SettingRealsFromNegativeInts().MakeReadOnly();
private static readonly string[] _settingRealsFromNegativeIntsFieldNames = new string[] { };
private static readonly uint[] _settingRealsFromNegativeIntsFieldTags = new uint[] { };
public static SettingRealsFromNegativeInts DefaultInstance {
@@ -2526,7 +2562,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SettingRealsFromNegativeInts DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SettingRealsFromNegativeInts ThisMessage {
@@ -2596,6 +2632,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SettingRealsFromNegativeInts ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SettingRealsFromNegativeInts MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -2611,22 +2651,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SettingRealsFromNegativeInts();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SettingRealsFromNegativeInts cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SettingRealsFromNegativeInts result;
+ private bool resultIsReadOnly;
+ private SettingRealsFromNegativeInts result;
private SettingRealsFromNegativeInts PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SettingRealsFromNegativeInts original = result;
result = new SettingRealsFromNegativeInts();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -2641,13 +2681,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SettingRealsFromNegativeInts();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -2663,11 +2703,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SettingRealsFromNegativeInts BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -2745,7 +2785,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ComplexOptionType1 : pb::ExtendableMessage<ComplexOptionType1, ComplexOptionType1.Builder> {
private ComplexOptionType1() { }
- private static readonly ComplexOptionType1 defaultInstance = new Builder().BuildPartial();
+ private static readonly ComplexOptionType1 defaultInstance = new ComplexOptionType1().MakeReadOnly();
private static readonly string[] _complexOptionType1FieldNames = new string[] { "foo", "foo2", "foo3" };
private static readonly uint[] _complexOptionType1FieldTags = new uint[] { 8, 16, 24 };
public static ComplexOptionType1 DefaultInstance {
@@ -2753,7 +2793,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOptionType1 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ComplexOptionType1 ThisMessage {
@@ -2875,6 +2915,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ComplexOptionType1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ComplexOptionType1 MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -2890,22 +2934,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ComplexOptionType1();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ComplexOptionType1 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ComplexOptionType1 result;
+ private bool resultIsReadOnly;
+ private ComplexOptionType1 result;
private ComplexOptionType1 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ComplexOptionType1 original = result;
result = new ComplexOptionType1();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -2920,13 +2964,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ComplexOptionType1();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -2942,11 +2986,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOptionType1 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -3106,7 +3150,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ComplexOptionType2 : pb::ExtendableMessage<ComplexOptionType2, ComplexOptionType2.Builder> {
private ComplexOptionType2() { }
- private static readonly ComplexOptionType2 defaultInstance = new Builder().BuildPartial();
+ private static readonly ComplexOptionType2 defaultInstance = new ComplexOptionType2().MakeReadOnly();
private static readonly string[] _complexOptionType2FieldNames = new string[] { "bar", "baz", "fred" };
private static readonly uint[] _complexOptionType2FieldTags = new uint[] { 10, 16, 26 };
public static ComplexOptionType2 DefaultInstance {
@@ -3114,7 +3158,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOptionType2 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ComplexOptionType2 ThisMessage {
@@ -3139,7 +3183,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ComplexOptionType4 : pb::GeneratedMessage<ComplexOptionType4, ComplexOptionType4.Builder> {
private ComplexOptionType4() { }
- private static readonly ComplexOptionType4 defaultInstance = new Builder().BuildPartial();
+ private static readonly ComplexOptionType4 defaultInstance = new ComplexOptionType4().MakeReadOnly();
private static readonly string[] _complexOptionType4FieldNames = new string[] { "waldo" };
private static readonly uint[] _complexOptionType4FieldTags = new uint[] { 8 };
public static ComplexOptionType4 DefaultInstance {
@@ -3147,7 +3191,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOptionType4 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ComplexOptionType4 ThisMessage {
@@ -3235,6 +3279,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ComplexOptionType4 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ComplexOptionType4 MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -3250,22 +3298,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ComplexOptionType4();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ComplexOptionType4 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ComplexOptionType4 result;
+ private bool resultIsReadOnly;
+ private ComplexOptionType4 result;
private ComplexOptionType4 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ComplexOptionType4 original = result;
result = new ComplexOptionType4();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -3280,13 +3328,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ComplexOptionType4();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -3302,11 +3350,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOptionType4 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -3411,12 +3459,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int BarFieldNumber = 1;
private bool hasBar;
- private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1 bar_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1 bar_;
public bool HasBar {
get { return hasBar; }
}
public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1 Bar {
- get { return bar_; }
+ get { return bar_ ?? global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.DefaultInstance; }
}
public const int BazFieldNumber = 2;
@@ -3431,12 +3479,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int FredFieldNumber = 3;
private bool hasFred;
- private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 fred_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 fred_;
public bool HasFred {
get { return hasFred; }
}
public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 Fred {
- get { return fred_; }
+ get { return fred_ ?? global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.DefaultInstance; }
}
public override bool IsInitialized {
@@ -3519,6 +3567,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ComplexOptionType2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ComplexOptionType2 MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -3534,22 +3586,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ComplexOptionType2();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ComplexOptionType2 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ComplexOptionType2 result;
+ private bool resultIsReadOnly;
+ private ComplexOptionType2 result;
private ComplexOptionType2 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ComplexOptionType2 original = result;
result = new ComplexOptionType2();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -3564,13 +3616,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ComplexOptionType2();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -3586,11 +3638,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOptionType2 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -3726,7 +3778,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearBar() {
PrepareBuilder();
result.hasBar = false;
- result.bar_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.DefaultInstance;
+ result.bar_ = null;
return this;
}
@@ -3786,7 +3838,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearFred() {
PrepareBuilder();
result.hasFred = false;
- result.fred_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.DefaultInstance;
+ result.fred_ = null;
return this;
}
}
@@ -3800,7 +3852,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ComplexOptionType3 : pb::GeneratedMessage<ComplexOptionType3, ComplexOptionType3.Builder> {
private ComplexOptionType3() { }
- private static readonly ComplexOptionType3 defaultInstance = new Builder().BuildPartial();
+ private static readonly ComplexOptionType3 defaultInstance = new ComplexOptionType3().MakeReadOnly();
private static readonly string[] _complexOptionType3FieldNames = new string[] { "complexoptiontype5", "qux" };
private static readonly uint[] _complexOptionType3FieldTags = new uint[] { 19, 8 };
public static ComplexOptionType3 DefaultInstance {
@@ -3808,7 +3860,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOptionType3 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ComplexOptionType3 ThisMessage {
@@ -3833,7 +3885,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ComplexOptionType5 : pb::GeneratedMessage<ComplexOptionType5, ComplexOptionType5.Builder> {
private ComplexOptionType5() { }
- private static readonly ComplexOptionType5 defaultInstance = new Builder().BuildPartial();
+ private static readonly ComplexOptionType5 defaultInstance = new ComplexOptionType5().MakeReadOnly();
private static readonly string[] _complexOptionType5FieldNames = new string[] { "plugh" };
private static readonly uint[] _complexOptionType5FieldTags = new uint[] { 24 };
public static ComplexOptionType5 DefaultInstance {
@@ -3841,7 +3893,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOptionType5 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ComplexOptionType5 ThisMessage {
@@ -3927,6 +3979,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ComplexOptionType5 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ComplexOptionType5 MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -3942,22 +3998,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ComplexOptionType5();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ComplexOptionType5 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ComplexOptionType5 result;
+ private bool resultIsReadOnly;
+ private ComplexOptionType5 result;
private ComplexOptionType5 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ComplexOptionType5 original = result;
result = new ComplexOptionType5();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -3972,13 +4028,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ComplexOptionType5();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -3994,11 +4050,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOptionType5 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -4113,12 +4169,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int ComplexOptionType5FieldNumber = 2;
private bool hasComplexOptionType5;
- private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5 complexOptionType5_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5 complexOptionType5_;
public bool HasComplexOptionType5 {
get { return hasComplexOptionType5; }
}
public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5 ComplexOptionType5 {
- get { return complexOptionType5_; }
+ get { return complexOptionType5_ ?? global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.DefaultInstance; }
}
public override bool IsInitialized {
@@ -4188,6 +4244,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ComplexOptionType3 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ComplexOptionType3 MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -4203,22 +4263,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ComplexOptionType3();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ComplexOptionType3 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ComplexOptionType3 result;
+ private bool resultIsReadOnly;
+ private ComplexOptionType3 result;
private ComplexOptionType3 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ComplexOptionType3 original = result;
result = new ComplexOptionType3();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -4233,13 +4293,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ComplexOptionType3();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -4255,11 +4315,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOptionType3 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -4402,7 +4462,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearComplexOptionType5() {
PrepareBuilder();
result.hasComplexOptionType5 = false;
- result.complexOptionType5_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.DefaultInstance;
+ result.complexOptionType5_ = null;
return this;
}
}
@@ -4416,7 +4476,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ComplexOpt6 : pb::GeneratedMessage<ComplexOpt6, ComplexOpt6.Builder> {
private ComplexOpt6() { }
- private static readonly ComplexOpt6 defaultInstance = new Builder().BuildPartial();
+ private static readonly ComplexOpt6 defaultInstance = new ComplexOpt6().MakeReadOnly();
private static readonly string[] _complexOpt6FieldNames = new string[] { "xyzzy" };
private static readonly uint[] _complexOpt6FieldTags = new uint[] { 60751608 };
public static ComplexOpt6 DefaultInstance {
@@ -4424,7 +4484,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOpt6 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ComplexOpt6 ThisMessage {
@@ -4510,6 +4570,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ComplexOpt6 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ComplexOpt6 MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -4525,22 +4589,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ComplexOpt6();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ComplexOpt6 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ComplexOpt6 result;
+ private bool resultIsReadOnly;
+ private ComplexOpt6 result;
private ComplexOpt6 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ComplexOpt6 original = result;
result = new ComplexOpt6();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -4555,13 +4619,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ComplexOpt6();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -4577,11 +4641,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ComplexOpt6 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -4686,7 +4750,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class VariousComplexOptions : pb::GeneratedMessage<VariousComplexOptions, VariousComplexOptions.Builder> {
private VariousComplexOptions() { }
- private static readonly VariousComplexOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly VariousComplexOptions defaultInstance = new VariousComplexOptions().MakeReadOnly();
private static readonly string[] _variousComplexOptionsFieldNames = new string[] { };
private static readonly uint[] _variousComplexOptionsFieldTags = new uint[] { };
public static VariousComplexOptions DefaultInstance {
@@ -4694,7 +4758,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override VariousComplexOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override VariousComplexOptions ThisMessage {
@@ -4764,6 +4828,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static VariousComplexOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private VariousComplexOptions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -4779,22 +4847,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new VariousComplexOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(VariousComplexOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- VariousComplexOptions result;
+ private bool resultIsReadOnly;
+ private VariousComplexOptions result;
private VariousComplexOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
VariousComplexOptions original = result;
result = new VariousComplexOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -4809,13 +4877,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new VariousComplexOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -4831,11 +4899,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override VariousComplexOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
index 9af43135..aba049d8 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
@@ -65,7 +65,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestEmbedOptimizedForSize : pb::GeneratedMessage<TestEmbedOptimizedForSize, TestEmbedOptimizedForSize.Builder> {
private TestEmbedOptimizedForSize() { }
- private static readonly TestEmbedOptimizedForSize defaultInstance = new Builder().BuildPartial();
+ private static readonly TestEmbedOptimizedForSize defaultInstance = new TestEmbedOptimizedForSize().MakeReadOnly();
private static readonly string[] _testEmbedOptimizedForSizeFieldNames = new string[] { "optional_message", "repeated_message" };
private static readonly uint[] _testEmbedOptimizedForSizeFieldTags = new uint[] { 10, 18 };
public static TestEmbedOptimizedForSize DefaultInstance {
@@ -73,7 +73,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestEmbedOptimizedForSize DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestEmbedOptimizedForSize ThisMessage {
@@ -90,12 +90,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int OptionalMessageFieldNumber = 1;
private bool hasOptionalMessage;
- private global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize optionalMessage_;
public bool HasOptionalMessage {
get { return hasOptionalMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize OptionalMessage {
- get { return optionalMessage_; }
+ get { return optionalMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.DefaultInstance; }
}
public const int RepeatedMessageFieldNumber = 2;
@@ -183,6 +183,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestEmbedOptimizedForSize ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestEmbedOptimizedForSize MakeReadOnly() {
+ repeatedMessage_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -198,22 +203,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestEmbedOptimizedForSize();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestEmbedOptimizedForSize cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestEmbedOptimizedForSize result;
+ private bool resultIsReadOnly;
+ private TestEmbedOptimizedForSize result;
private TestEmbedOptimizedForSize PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestEmbedOptimizedForSize original = result;
result = new TestEmbedOptimizedForSize();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -228,13 +233,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestEmbedOptimizedForSize();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -250,12 +255,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestEmbedOptimizedForSize BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedMessage_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -378,7 +382,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalMessage() {
PrepareBuilder();
result.hasOptionalMessage = false;
- result.optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.DefaultInstance;
+ result.optionalMessage_ = null;
return this;
}
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs
index 47841404..be2d202f 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestExtrasIssuesProtoFile.cs
@@ -26,6 +26,10 @@ namespace UnitTest.Issues.TestProtos {
internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.AB, global::UnitTest.Issues.TestProtos.AB.Builder> internal__static_unittest_issues_AB__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_unittest_issues_NumberField__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.NumberField, global::UnitTest.Issues.TestProtos.NumberField.Builder> internal__static_unittest_issues_NumberField__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_unittest_issues_MyMessageAReferenceB__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.MyMessageAReferenceB, global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.Builder> internal__static_unittest_issues_MyMessageAReferenceB__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_unittest_issues_MyMessageBReferenceA__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.MyMessageBReferenceA, global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.Builder> internal__static_unittest_issues_MyMessageBReferenceA__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_unittest_issues_NegativeEnumMessage__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.NegativeEnumMessage, global::UnitTest.Issues.TestProtos.NegativeEnumMessage.Builder> internal__static_unittest_issues_NegativeEnumMessage__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_unittest_issues_DeprecatedChild__Descriptor;
@@ -44,22 +48,26 @@ namespace UnitTest.Issues.TestProtos {
"ChxleHRlc3QvdW5pdHRlc3RfaXNzdWVzLnByb3RvEg91bml0dGVzdF9pc3N1" +
"ZXMaJGdvb2dsZS9wcm90b2J1Zi9jc2hhcnBfb3B0aW9ucy5wcm90byIPCgFB" +
"EgoKAl9BGAEgASgFIg8KAUISCgoCQl8YASABKAUiEQoCQUISCwoDYV9iGAEg" +
- "ASgFIhoKC051bWJlckZpZWxkEgsKA18wMRgBIAEoBSKsAQoTTmVnYXRpdmVF" +
- "bnVtTWVzc2FnZRIsCgV2YWx1ZRgBIAEoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5O" +
- "ZWdhdGl2ZUVudW0SLQoGdmFsdWVzGAIgAygOMh0udW5pdHRlc3RfaXNzdWVz" +
- "Lk5lZ2F0aXZlRW51bRI4Cg1wYWNrZWRfdmFsdWVzGAMgAygOMh0udW5pdHRl" +
- "c3RfaXNzdWVzLk5lZ2F0aXZlRW51bUICEAEiEQoPRGVwcmVjYXRlZENoaWxk" +
- "IrkCChdEZXByZWNhdGVkRmllbGRzTWVzc2FnZRIaCg5QcmltaXRpdmVWYWx1" +
- "ZRgBIAEoBUICGAESGgoOUHJpbWl0aXZlQXJyYXkYAiADKAVCAhgBEjoKDE1l" +
- "c3NhZ2VWYWx1ZRgDIAEoCzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVk" +
- "Q2hpbGRCAhgBEjoKDE1lc3NhZ2VBcnJheRgEIAMoCzIgLnVuaXR0ZXN0X2lz" +
- "c3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgBEjYKCUVudW1WYWx1ZRgFIAEoDjIf" +
- "LnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkRW51bUICGAESNgoJRW51bUFy" +
- "cmF5GAYgAygOMh8udW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRFbnVtQgIY" +
- "ASpHCgxOZWdhdGl2ZUVudW0SFgoJRml2ZUJlbG93EPv//////////wESFQoI" +
- "TWludXNPbmUQ////////////ARIICgRaZXJvEAAqGQoORGVwcmVjYXRlZEVu" +
- "dW0SBwoDb25lEAFCQEgBwj47ChpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rv" +
- "cxIdVW5pdFRlc3RFeHRyYXNJc3N1ZXNQcm90b0ZpbGU=");
+ "ASgFIhoKC051bWJlckZpZWxkEgsKA18wMRgBIAEoBSJMChRNeU1lc3NhZ2VB" +
+ "UmVmZXJlbmNlQhI0CgV2YWx1ZRgBIAIoCzIlLnVuaXR0ZXN0X2lzc3Vlcy5N" +
+ "eU1lc3NhZ2VCUmVmZXJlbmNlQSJMChRNeU1lc3NhZ2VCUmVmZXJlbmNlQRI0" +
+ "CgV2YWx1ZRgBIAIoCzIlLnVuaXR0ZXN0X2lzc3Vlcy5NeU1lc3NhZ2VBUmVm" +
+ "ZXJlbmNlQiKsAQoTTmVnYXRpdmVFbnVtTWVzc2FnZRIsCgV2YWx1ZRgBIAEo" +
+ "DjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW0SLQoGdmFsdWVzGAIg" +
+ "AygOMh0udW5pdHRlc3RfaXNzdWVzLk5lZ2F0aXZlRW51bRI4Cg1wYWNrZWRf" +
+ "dmFsdWVzGAMgAygOMh0udW5pdHRlc3RfaXNzdWVzLk5lZ2F0aXZlRW51bUIC" +
+ "EAEiEQoPRGVwcmVjYXRlZENoaWxkIrkCChdEZXByZWNhdGVkRmllbGRzTWVz" +
+ "c2FnZRIaCg5QcmltaXRpdmVWYWx1ZRgBIAEoBUICGAESGgoOUHJpbWl0aXZl" +
+ "QXJyYXkYAiADKAVCAhgBEjoKDE1lc3NhZ2VWYWx1ZRgDIAEoCzIgLnVuaXR0" +
+ "ZXN0X2lzc3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgBEjoKDE1lc3NhZ2VBcnJh" +
+ "eRgEIAMoCzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgB" +
+ "EjYKCUVudW1WYWx1ZRgFIAEoDjIfLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNh" +
+ "dGVkRW51bUICGAESNgoJRW51bUFycmF5GAYgAygOMh8udW5pdHRlc3RfaXNz" +
+ "dWVzLkRlcHJlY2F0ZWRFbnVtQgIYASpHCgxOZWdhdGl2ZUVudW0SFgoJRml2" +
+ "ZUJlbG93EPv//////////wESFQoITWludXNPbmUQ////////////ARIICgRa" +
+ "ZXJvEAAqGQoORGVwcmVjYXRlZEVudW0SBwoDb25lEAFCQEgBwj47ChpVbml0" +
+ "VGVzdC5Jc3N1ZXMuVGVzdFByb3RvcxIdVW5pdFRlc3RFeHRyYXNJc3N1ZXNQ" +
+ "cm90b0ZpbGU=");
pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
descriptor = root;
internal__static_unittest_issues_A__Descriptor = Descriptor.MessageTypes[0];
@@ -78,15 +86,23 @@ namespace UnitTest.Issues.TestProtos {
internal__static_unittest_issues_NumberField__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.NumberField, global::UnitTest.Issues.TestProtos.NumberField.Builder>(internal__static_unittest_issues_NumberField__Descriptor,
new string[] { "_01", });
- internal__static_unittest_issues_NegativeEnumMessage__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_unittest_issues_MyMessageAReferenceB__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_unittest_issues_MyMessageAReferenceB__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.MyMessageAReferenceB, global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.Builder>(internal__static_unittest_issues_MyMessageAReferenceB__Descriptor,
+ new string[] { "Value", });
+ internal__static_unittest_issues_MyMessageBReferenceA__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_unittest_issues_MyMessageBReferenceA__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.MyMessageBReferenceA, global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.Builder>(internal__static_unittest_issues_MyMessageBReferenceA__Descriptor,
+ new string[] { "Value", });
+ internal__static_unittest_issues_NegativeEnumMessage__Descriptor = Descriptor.MessageTypes[6];
internal__static_unittest_issues_NegativeEnumMessage__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.NegativeEnumMessage, global::UnitTest.Issues.TestProtos.NegativeEnumMessage.Builder>(internal__static_unittest_issues_NegativeEnumMessage__Descriptor,
new string[] { "Value", "Values", "PackedValues", });
- internal__static_unittest_issues_DeprecatedChild__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_unittest_issues_DeprecatedChild__Descriptor = Descriptor.MessageTypes[7];
internal__static_unittest_issues_DeprecatedChild__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.DeprecatedChild, global::UnitTest.Issues.TestProtos.DeprecatedChild.Builder>(internal__static_unittest_issues_DeprecatedChild__Descriptor,
new string[] { });
- internal__static_unittest_issues_DeprecatedFieldsMessage__Descriptor = Descriptor.MessageTypes[6];
+ internal__static_unittest_issues_DeprecatedFieldsMessage__Descriptor = Descriptor.MessageTypes[8];
internal__static_unittest_issues_DeprecatedFieldsMessage__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.DeprecatedFieldsMessage, global::UnitTest.Issues.TestProtos.DeprecatedFieldsMessage.Builder>(internal__static_unittest_issues_DeprecatedFieldsMessage__Descriptor,
new string[] { "PrimitiveValue", "PrimitiveArray", "MessageValue", "MessageArray", "EnumValue", "EnumArray", });
@@ -126,7 +142,7 @@ namespace UnitTest.Issues.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class A : pb::GeneratedMessage<A, A.Builder> {
private A() { }
- private static readonly A defaultInstance = new Builder().BuildPartial();
+ private static readonly A defaultInstance = new A().MakeReadOnly();
private static readonly string[] _aFieldNames = new string[] { "_A" };
private static readonly uint[] _aFieldTags = new uint[] { 8 };
public static A DefaultInstance {
@@ -134,7 +150,7 @@ namespace UnitTest.Issues.TestProtos {
}
public override A DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override A ThisMessage {
@@ -220,6 +236,10 @@ namespace UnitTest.Issues.TestProtos {
public static A ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private A MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -235,22 +255,22 @@ namespace UnitTest.Issues.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new A();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(A cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- A result;
+ private bool resultIsReadOnly;
+ private A result;
private A PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
A original = result;
result = new A();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -265,13 +285,13 @@ namespace UnitTest.Issues.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new A();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -287,11 +307,11 @@ namespace UnitTest.Issues.TestProtos {
}
public override A BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -396,7 +416,7 @@ namespace UnitTest.Issues.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class B : pb::GeneratedMessage<B, B.Builder> {
private B() { }
- private static readonly B defaultInstance = new Builder().BuildPartial();
+ private static readonly B defaultInstance = new B().MakeReadOnly();
private static readonly string[] _bFieldNames = new string[] { "B_" };
private static readonly uint[] _bFieldTags = new uint[] { 8 };
public static B DefaultInstance {
@@ -404,7 +424,7 @@ namespace UnitTest.Issues.TestProtos {
}
public override B DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override B ThisMessage {
@@ -490,6 +510,10 @@ namespace UnitTest.Issues.TestProtos {
public static B ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private B MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -505,22 +529,22 @@ namespace UnitTest.Issues.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new B();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(B cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- B result;
+ private bool resultIsReadOnly;
+ private B result;
private B PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
B original = result;
result = new B();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -535,13 +559,13 @@ namespace UnitTest.Issues.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new B();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -557,11 +581,11 @@ namespace UnitTest.Issues.TestProtos {
}
public override B BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -666,7 +690,7 @@ namespace UnitTest.Issues.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class AB : pb::GeneratedMessage<AB, AB.Builder> {
private AB() { }
- private static readonly AB defaultInstance = new Builder().BuildPartial();
+ private static readonly AB defaultInstance = new AB().MakeReadOnly();
private static readonly string[] _aBFieldNames = new string[] { "a_b" };
private static readonly uint[] _aBFieldTags = new uint[] { 8 };
public static AB DefaultInstance {
@@ -674,7 +698,7 @@ namespace UnitTest.Issues.TestProtos {
}
public override AB DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override AB ThisMessage {
@@ -760,6 +784,10 @@ namespace UnitTest.Issues.TestProtos {
public static AB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private AB MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -775,22 +803,22 @@ namespace UnitTest.Issues.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new AB();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(AB cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- AB result;
+ private bool resultIsReadOnly;
+ private AB result;
private AB PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
AB original = result;
result = new AB();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -805,13 +833,13 @@ namespace UnitTest.Issues.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new AB();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -827,11 +855,11 @@ namespace UnitTest.Issues.TestProtos {
}
public override AB BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -936,7 +964,7 @@ namespace UnitTest.Issues.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class NumberField : pb::GeneratedMessage<NumberField, NumberField.Builder> {
private NumberField() { }
- private static readonly NumberField defaultInstance = new Builder().BuildPartial();
+ private static readonly NumberField defaultInstance = new NumberField().MakeReadOnly();
private static readonly string[] _numberFieldFieldNames = new string[] { "_01" };
private static readonly uint[] _numberFieldFieldTags = new uint[] { 8 };
public static NumberField DefaultInstance {
@@ -944,7 +972,7 @@ namespace UnitTest.Issues.TestProtos {
}
public override NumberField DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override NumberField ThisMessage {
@@ -1032,6 +1060,10 @@ namespace UnitTest.Issues.TestProtos {
public static NumberField ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private NumberField MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1047,22 +1079,22 @@ namespace UnitTest.Issues.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new NumberField();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(NumberField cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- NumberField result;
+ private bool resultIsReadOnly;
+ private NumberField result;
private NumberField PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
NumberField original = result;
result = new NumberField();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1077,13 +1109,13 @@ namespace UnitTest.Issues.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new NumberField();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1099,11 +1131,11 @@ namespace UnitTest.Issues.TestProtos {
}
public override NumberField BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1208,9 +1240,611 @@ namespace UnitTest.Issues.TestProtos {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+ public sealed partial class MyMessageAReferenceB : pb::GeneratedMessage<MyMessageAReferenceB, MyMessageAReferenceB.Builder> {
+ private MyMessageAReferenceB() { }
+ private static readonly MyMessageAReferenceB defaultInstance = new MyMessageAReferenceB().MakeReadOnly();
+ private static readonly string[] _myMessageAReferenceBFieldNames = new string[] { "value" };
+ private static readonly uint[] _myMessageAReferenceBFieldTags = new uint[] { 10 };
+ public static MyMessageAReferenceB DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MyMessageAReferenceB DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MyMessageAReferenceB ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::UnitTest.Issues.TestProtos.UnitTestExtrasIssuesProtoFile.internal__static_unittest_issues_MyMessageAReferenceB__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MyMessageAReferenceB, MyMessageAReferenceB.Builder> InternalFieldAccessors {
+ get { return global::UnitTest.Issues.TestProtos.UnitTestExtrasIssuesProtoFile.internal__static_unittest_issues_MyMessageAReferenceB__FieldAccessorTable; }
+ }
+
+ public const int ValueFieldNumber = 1;
+ private bool hasValue;
+ private global::UnitTest.Issues.TestProtos.MyMessageBReferenceA value_;
+ public bool HasValue {
+ get { return hasValue; }
+ }
+ public global::UnitTest.Issues.TestProtos.MyMessageBReferenceA Value {
+ get { return value_ ?? global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasValue) return false;
+ if (!Value.IsInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _myMessageAReferenceBFieldNames;
+ if (hasValue) {
+ output.WriteMessage(1, field_names[0], Value);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasValue) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Value);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static MyMessageAReferenceB ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MyMessageAReferenceB MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MyMessageAReferenceB prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+ public sealed partial class Builder : pb::GeneratedBuilder<MyMessageAReferenceB, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MyMessageAReferenceB cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MyMessageAReferenceB result;
+
+ private MyMessageAReferenceB PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MyMessageAReferenceB original = result;
+ result = new MyMessageAReferenceB();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MyMessageAReferenceB MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.Descriptor; }
+ }
+
+ public override MyMessageAReferenceB DefaultInstanceForType {
+ get { return global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.DefaultInstance; }
+ }
+
+ public override MyMessageAReferenceB BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MyMessageAReferenceB) {
+ return MergeFrom((MyMessageAReferenceB) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MyMessageAReferenceB other) {
+ if (other == global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasValue) {
+ MergeValue(other.Value);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_myMessageAReferenceBFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _myMessageAReferenceBFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.Builder subBuilder = global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.CreateBuilder();
+ if (result.hasValue) {
+ subBuilder.MergeFrom(Value);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Value = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasValue {
+ get { return result.hasValue; }
+ }
+ public global::UnitTest.Issues.TestProtos.MyMessageBReferenceA Value {
+ get { return result.Value; }
+ set { SetValue(value); }
+ }
+ public Builder SetValue(global::UnitTest.Issues.TestProtos.MyMessageBReferenceA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = value;
+ return this;
+ }
+ public Builder SetValue(global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeValue(global::UnitTest.Issues.TestProtos.MyMessageBReferenceA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasValue &&
+ result.value_ != global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.DefaultInstance) {
+ result.value_ = global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.CreateBuilder(result.value_).MergeFrom(value).BuildPartial();
+ } else {
+ result.value_ = value;
+ }
+ result.hasValue = true;
+ return this;
+ }
+ public Builder ClearValue() {
+ PrepareBuilder();
+ result.hasValue = false;
+ result.value_ = null;
+ return this;
+ }
+ }
+ static MyMessageAReferenceB() {
+ object.ReferenceEquals(global::UnitTest.Issues.TestProtos.UnitTestExtrasIssuesProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+ public sealed partial class MyMessageBReferenceA : pb::GeneratedMessage<MyMessageBReferenceA, MyMessageBReferenceA.Builder> {
+ private MyMessageBReferenceA() { }
+ private static readonly MyMessageBReferenceA defaultInstance = new MyMessageBReferenceA().MakeReadOnly();
+ private static readonly string[] _myMessageBReferenceAFieldNames = new string[] { "value" };
+ private static readonly uint[] _myMessageBReferenceAFieldTags = new uint[] { 10 };
+ public static MyMessageBReferenceA DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MyMessageBReferenceA DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MyMessageBReferenceA ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::UnitTest.Issues.TestProtos.UnitTestExtrasIssuesProtoFile.internal__static_unittest_issues_MyMessageBReferenceA__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MyMessageBReferenceA, MyMessageBReferenceA.Builder> InternalFieldAccessors {
+ get { return global::UnitTest.Issues.TestProtos.UnitTestExtrasIssuesProtoFile.internal__static_unittest_issues_MyMessageBReferenceA__FieldAccessorTable; }
+ }
+
+ public const int ValueFieldNumber = 1;
+ private bool hasValue;
+ private global::UnitTest.Issues.TestProtos.MyMessageAReferenceB value_;
+ public bool HasValue {
+ get { return hasValue; }
+ }
+ public global::UnitTest.Issues.TestProtos.MyMessageAReferenceB Value {
+ get { return value_ ?? global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasValue) return false;
+ if (!Value.IsInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ int size = SerializedSize;
+ string[] field_names = _myMessageBReferenceAFieldNames;
+ if (hasValue) {
+ output.WriteMessage(1, field_names[0], Value);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasValue) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Value);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static MyMessageBReferenceA ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MyMessageBReferenceA MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MyMessageBReferenceA prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
+ public sealed partial class Builder : pb::GeneratedBuilder<MyMessageBReferenceA, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MyMessageBReferenceA cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MyMessageBReferenceA result;
+
+ private MyMessageBReferenceA PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MyMessageBReferenceA original = result;
+ result = new MyMessageBReferenceA();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MyMessageBReferenceA MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.Descriptor; }
+ }
+
+ public override MyMessageBReferenceA DefaultInstanceForType {
+ get { return global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.DefaultInstance; }
+ }
+
+ public override MyMessageBReferenceA BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MyMessageBReferenceA) {
+ return MergeFrom((MyMessageBReferenceA) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MyMessageBReferenceA other) {
+ if (other == global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasValue) {
+ MergeValue(other.Value);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_myMessageBReferenceAFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _myMessageBReferenceAFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.Builder subBuilder = global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.CreateBuilder();
+ if (result.hasValue) {
+ subBuilder.MergeFrom(Value);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Value = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasValue {
+ get { return result.hasValue; }
+ }
+ public global::UnitTest.Issues.TestProtos.MyMessageAReferenceB Value {
+ get { return result.Value; }
+ set { SetValue(value); }
+ }
+ public Builder SetValue(global::UnitTest.Issues.TestProtos.MyMessageAReferenceB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = value;
+ return this;
+ }
+ public Builder SetValue(global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeValue(global::UnitTest.Issues.TestProtos.MyMessageAReferenceB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasValue &&
+ result.value_ != global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.DefaultInstance) {
+ result.value_ = global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.CreateBuilder(result.value_).MergeFrom(value).BuildPartial();
+ } else {
+ result.value_ = value;
+ }
+ result.hasValue = true;
+ return this;
+ }
+ public Builder ClearValue() {
+ PrepareBuilder();
+ result.hasValue = false;
+ result.value_ = null;
+ return this;
+ }
+ }
+ static MyMessageBReferenceA() {
+ object.ReferenceEquals(global::UnitTest.Issues.TestProtos.UnitTestExtrasIssuesProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class NegativeEnumMessage : pb::GeneratedMessage<NegativeEnumMessage, NegativeEnumMessage.Builder> {
private NegativeEnumMessage() { }
- private static readonly NegativeEnumMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly NegativeEnumMessage defaultInstance = new NegativeEnumMessage().MakeReadOnly();
private static readonly string[] _negativeEnumMessageFieldNames = new string[] { "packed_values", "value", "values" };
private static readonly uint[] _negativeEnumMessageFieldTags = new uint[] { 26, 8, 16 };
public static NegativeEnumMessage DefaultInstance {
@@ -1218,7 +1852,7 @@ namespace UnitTest.Issues.TestProtos {
}
public override NegativeEnumMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override NegativeEnumMessage ThisMessage {
@@ -1357,6 +1991,12 @@ namespace UnitTest.Issues.TestProtos {
public static NegativeEnumMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private NegativeEnumMessage MakeReadOnly() {
+ values_.MakeReadOnly();
+ packedValues_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1372,22 +2012,22 @@ namespace UnitTest.Issues.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new NegativeEnumMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(NegativeEnumMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- NegativeEnumMessage result;
+ private bool resultIsReadOnly;
+ private NegativeEnumMessage result;
private NegativeEnumMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
NegativeEnumMessage original = result;
result = new NegativeEnumMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1402,13 +2042,13 @@ namespace UnitTest.Issues.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new NegativeEnumMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1424,13 +2064,11 @@ namespace UnitTest.Issues.TestProtos {
}
public override NegativeEnumMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.values_.MakeReadOnly();
- result.packedValues_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1637,7 +2275,7 @@ namespace UnitTest.Issues.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class DeprecatedChild : pb::GeneratedMessage<DeprecatedChild, DeprecatedChild.Builder> {
private DeprecatedChild() { }
- private static readonly DeprecatedChild defaultInstance = new Builder().BuildPartial();
+ private static readonly DeprecatedChild defaultInstance = new DeprecatedChild().MakeReadOnly();
private static readonly string[] _deprecatedChildFieldNames = new string[] { };
private static readonly uint[] _deprecatedChildFieldTags = new uint[] { };
public static DeprecatedChild DefaultInstance {
@@ -1645,7 +2283,7 @@ namespace UnitTest.Issues.TestProtos {
}
public override DeprecatedChild DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override DeprecatedChild ThisMessage {
@@ -1715,6 +2353,10 @@ namespace UnitTest.Issues.TestProtos {
public static DeprecatedChild ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private DeprecatedChild MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1730,22 +2372,22 @@ namespace UnitTest.Issues.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new DeprecatedChild();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(DeprecatedChild cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- DeprecatedChild result;
+ private bool resultIsReadOnly;
+ private DeprecatedChild result;
private DeprecatedChild PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
DeprecatedChild original = result;
result = new DeprecatedChild();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1760,13 +2402,13 @@ namespace UnitTest.Issues.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new DeprecatedChild();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1782,11 +2424,11 @@ namespace UnitTest.Issues.TestProtos {
}
public override DeprecatedChild BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1864,7 +2506,7 @@ namespace UnitTest.Issues.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class DeprecatedFieldsMessage : pb::GeneratedMessage<DeprecatedFieldsMessage, DeprecatedFieldsMessage.Builder> {
private DeprecatedFieldsMessage() { }
- private static readonly DeprecatedFieldsMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly DeprecatedFieldsMessage defaultInstance = new DeprecatedFieldsMessage().MakeReadOnly();
private static readonly string[] _deprecatedFieldsMessageFieldNames = new string[] { "EnumArray", "EnumValue", "MessageArray", "MessageValue", "PrimitiveArray", "PrimitiveValue" };
private static readonly uint[] _deprecatedFieldsMessageFieldTags = new uint[] { 48, 40, 34, 26, 16, 8 };
public static DeprecatedFieldsMessage DefaultInstance {
@@ -1872,7 +2514,7 @@ namespace UnitTest.Issues.TestProtos {
}
public override DeprecatedFieldsMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override DeprecatedFieldsMessage ThisMessage {
@@ -1916,14 +2558,14 @@ namespace UnitTest.Issues.TestProtos {
public const int MessageValueFieldNumber = 3;
private bool hasMessageValue;
- private global::UnitTest.Issues.TestProtos.DeprecatedChild messageValue_ = global::UnitTest.Issues.TestProtos.DeprecatedChild.DefaultInstance;
+ private global::UnitTest.Issues.TestProtos.DeprecatedChild messageValue_;
[global::System.ObsoleteAttribute()]
public bool HasMessageValue {
get { return hasMessageValue; }
}
[global::System.ObsoleteAttribute()]
public global::UnitTest.Issues.TestProtos.DeprecatedChild MessageValue {
- get { return messageValue_; }
+ get { return messageValue_ ?? global::UnitTest.Issues.TestProtos.DeprecatedChild.DefaultInstance; }
}
public const int MessageArrayFieldNumber = 4;
@@ -2071,6 +2713,13 @@ namespace UnitTest.Issues.TestProtos {
public static DeprecatedFieldsMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private DeprecatedFieldsMessage MakeReadOnly() {
+ primitiveArray_.MakeReadOnly();
+ messageArray_.MakeReadOnly();
+ enumArray_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -2086,22 +2735,22 @@ namespace UnitTest.Issues.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new DeprecatedFieldsMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(DeprecatedFieldsMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- DeprecatedFieldsMessage result;
+ private bool resultIsReadOnly;
+ private DeprecatedFieldsMessage result;
private DeprecatedFieldsMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
DeprecatedFieldsMessage original = result;
result = new DeprecatedFieldsMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -2116,13 +2765,13 @@ namespace UnitTest.Issues.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new DeprecatedFieldsMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -2138,14 +2787,11 @@ namespace UnitTest.Issues.TestProtos {
}
public override DeprecatedFieldsMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.primitiveArray_.MakeReadOnly();
- result.messageArray_.MakeReadOnly();
- result.enumArray_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -2382,7 +3028,7 @@ namespace UnitTest.Issues.TestProtos {
public Builder ClearMessageValue() {
PrepareBuilder();
result.hasMessageValue = false;
- result.messageValue_ = global::UnitTest.Issues.TestProtos.DeprecatedChild.DefaultInstance;
+ result.messageValue_ = null;
return this;
}
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs
index 9ba1919e..a758ba81 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSizeProtoFile.cs
@@ -138,13 +138,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SizeMessage1 : pb::GeneratedMessage<SizeMessage1, SizeMessage1.Builder> {
private SizeMessage1() { }
- private static readonly SizeMessage1 defaultInstance = new Builder().BuildPartial();
+ private static readonly SizeMessage1 defaultInstance = new SizeMessage1().MakeReadOnly();
public static SizeMessage1 DefaultInstance {
get { return defaultInstance; }
}
public override SizeMessage1 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SizeMessage1 ThisMessage {
@@ -505,12 +505,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int Field15FieldNumber = 15;
private bool hasField15;
- private global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage field15_ = global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage field15_;
public bool HasField15 {
get { return hasField15; }
}
public global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage Field15 {
- get { return field15_; }
+ get { return field15_ ?? global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.DefaultInstance; }
}
public const int Field78FieldNumber = 78;
@@ -603,6 +603,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SizeMessage1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SizeMessage1 MakeReadOnly() {
+ field5_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -618,22 +623,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SizeMessage1();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SizeMessage1 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SizeMessage1 result;
+ private bool resultIsReadOnly;
+ private SizeMessage1 result;
private SizeMessage1 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SizeMessage1 original = result;
result = new SizeMessage1();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -648,13 +653,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SizeMessage1();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -670,12 +675,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SizeMessage1 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.field5_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -1417,7 +1421,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearField15() {
PrepareBuilder();
result.hasField15 = false;
- result.field15_ = global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.DefaultInstance;
+ result.field15_ = null;
return this;
}
@@ -1552,13 +1556,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SizeMessage1SubMessage : pb::GeneratedMessage<SizeMessage1SubMessage, SizeMessage1SubMessage.Builder> {
private SizeMessage1SubMessage() { }
- private static readonly SizeMessage1SubMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly SizeMessage1SubMessage defaultInstance = new SizeMessage1SubMessage().MakeReadOnly();
public static SizeMessage1SubMessage DefaultInstance {
get { return defaultInstance; }
}
public override SizeMessage1SubMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SizeMessage1SubMessage ThisMessage {
@@ -1807,6 +1811,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SizeMessage1SubMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SizeMessage1SubMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1822,22 +1830,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SizeMessage1SubMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SizeMessage1SubMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SizeMessage1SubMessage result;
+ private bool resultIsReadOnly;
+ private SizeMessage1SubMessage result;
private SizeMessage1SubMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SizeMessage1SubMessage original = result;
result = new SizeMessage1SubMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1852,13 +1860,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SizeMessage1SubMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1874,11 +1882,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SizeMessage1SubMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -2302,13 +2310,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SizeMessage2 : pb::GeneratedMessage<SizeMessage2, SizeMessage2.Builder> {
private SizeMessage2() { }
- private static readonly SizeMessage2 defaultInstance = new Builder().BuildPartial();
+ private static readonly SizeMessage2 defaultInstance = new SizeMessage2().MakeReadOnly();
public static SizeMessage2 DefaultInstance {
get { return defaultInstance; }
}
public override SizeMessage2 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SizeMessage2 ThisMessage {
@@ -2333,13 +2341,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Group1 : pb::GeneratedMessage<Group1, Group1.Builder> {
private Group1() { }
- private static readonly Group1 defaultInstance = new Builder().BuildPartial();
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
public static Group1 DefaultInstance {
get { return defaultInstance; }
}
public override Group1 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override Group1 ThisMessage {
@@ -2513,12 +2521,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int Field31FieldNumber = 31;
private bool hasField31;
- private global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage field31_ = global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage field31_;
public bool HasField31 {
get { return hasField31; }
}
public global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage Field31 {
- get { return field31_; }
+ get { return field31_ ?? global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.DefaultInstance; }
}
public static Group1 ParseFrom(pb::ByteString data) {
@@ -2551,6 +2559,13 @@ namespace Google.ProtocolBuffers.TestProtos {
public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private Group1 MakeReadOnly() {
+ field14_.MakeReadOnly();
+ field22_.MakeReadOnly();
+ field73_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -2566,22 +2581,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new Group1();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(Group1 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- Group1 result;
+ private bool resultIsReadOnly;
+ private Group1 result;
private Group1 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
Group1 original = result;
result = new Group1();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -2596,13 +2611,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new Group1();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -2618,14 +2633,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Group1 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.field14_.MakeReadOnly();
- result.field22_.MakeReadOnly();
- result.field73_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -3007,7 +3019,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearField31() {
PrepareBuilder();
result.hasField31 = false;
- result.field31_ = global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.DefaultInstance;
+ result.field31_ = null;
return this;
}
}
@@ -3357,6 +3369,14 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SizeMessage2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SizeMessage2 MakeReadOnly() {
+ group1_.MakeReadOnly();
+ field128_.MakeReadOnly();
+ field127_.MakeReadOnly();
+ field130_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -3372,22 +3392,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SizeMessage2();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SizeMessage2 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SizeMessage2 result;
+ private bool resultIsReadOnly;
+ private SizeMessage2 result;
private SizeMessage2 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SizeMessage2 original = result;
result = new SizeMessage2();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -3402,13 +3422,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SizeMessage2();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -3424,15 +3444,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SizeMessage2 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.group1_.MakeReadOnly();
- result.field128_.MakeReadOnly();
- result.field127_.MakeReadOnly();
- result.field130_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -4107,13 +4123,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SizeMessage2GroupedMessage : pb::GeneratedMessage<SizeMessage2GroupedMessage, SizeMessage2GroupedMessage.Builder> {
private SizeMessage2GroupedMessage() { }
- private static readonly SizeMessage2GroupedMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly SizeMessage2GroupedMessage defaultInstance = new SizeMessage2GroupedMessage().MakeReadOnly();
public static SizeMessage2GroupedMessage DefaultInstance {
get { return defaultInstance; }
}
public override SizeMessage2GroupedMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SizeMessage2GroupedMessage ThisMessage {
@@ -4268,6 +4284,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SizeMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SizeMessage2GroupedMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -4283,22 +4303,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SizeMessage2GroupedMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SizeMessage2GroupedMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SizeMessage2GroupedMessage result;
+ private bool resultIsReadOnly;
+ private SizeMessage2GroupedMessage result;
private SizeMessage2GroupedMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SizeMessage2GroupedMessage original = result;
result = new SizeMessage2GroupedMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -4313,13 +4333,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SizeMessage2GroupedMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -4335,11 +4355,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SizeMessage2GroupedMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs
index 496fb436..c7e1a93b 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestGoogleSpeedProtoFile.cs
@@ -138,7 +138,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SpeedMessage1 : pb::GeneratedMessage<SpeedMessage1, SpeedMessage1.Builder> {
private SpeedMessage1() { }
- private static readonly SpeedMessage1 defaultInstance = new Builder().BuildPartial();
+ private static readonly SpeedMessage1 defaultInstance = new SpeedMessage1().MakeReadOnly();
private static readonly string[] _speedMessage1FieldNames = new string[] { "field1", "field100", "field101", "field102", "field103", "field104", "field12", "field128", "field129", "field13", "field130", "field131", "field14", "field15", "field150", "field16", "field17", "field18", "field2", "field22", "field23", "field24", "field25", "field271", "field272", "field280", "field29", "field3", "field30", "field4", "field5", "field59", "field6", "field60", "field67", "field68", "field7", "field78", "field80", "field81", "field9" };
private static readonly uint[] _speedMessage1FieldTags = new uint[] { 10, 800, 808, 818, 826, 832, 96, 1024, 1034, 104, 1040, 1048, 112, 122, 1200, 128, 136, 146, 16, 176, 184, 192, 200, 2168, 2176, 2240, 232, 24, 240, 34, 41, 472, 48, 480, 536, 544, 58, 624, 640, 648, 74 };
public static SpeedMessage1 DefaultInstance {
@@ -146,7 +146,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SpeedMessage1 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SpeedMessage1 ThisMessage {
@@ -507,12 +507,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int Field15FieldNumber = 15;
private bool hasField15;
- private global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage field15_ = global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage field15_;
public bool HasField15 {
get { return hasField15; }
}
public global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage Field15 {
- get { return field15_; }
+ get { return field15_ ?? global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance; }
}
public const int Field78FieldNumber = 78;
@@ -882,6 +882,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SpeedMessage1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SpeedMessage1 MakeReadOnly() {
+ field5_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -897,22 +902,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SpeedMessage1();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SpeedMessage1 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SpeedMessage1 result;
+ private bool resultIsReadOnly;
+ private SpeedMessage1 result;
private SpeedMessage1 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SpeedMessage1 original = result;
result = new SpeedMessage1();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -927,13 +932,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SpeedMessage1();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -949,12 +954,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SpeedMessage1 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.field5_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -2053,7 +2057,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearField15() {
PrepareBuilder();
result.hasField15 = false;
- result.field15_ = global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance;
+ result.field15_ = null;
return this;
}
@@ -2188,7 +2192,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SpeedMessage1SubMessage : pb::GeneratedMessage<SpeedMessage1SubMessage, SpeedMessage1SubMessage.Builder> {
private SpeedMessage1SubMessage() { }
- private static readonly SpeedMessage1SubMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly SpeedMessage1SubMessage defaultInstance = new SpeedMessage1SubMessage().MakeReadOnly();
private static readonly string[] _speedMessage1SubMessageFieldNames = new string[] { "field1", "field12", "field13", "field14", "field15", "field16", "field19", "field2", "field20", "field203", "field204", "field205", "field206", "field207", "field21", "field22", "field23", "field28", "field3", "field300" };
private static readonly uint[] _speedMessage1SubMessageFieldTags = new uint[] { 8, 96, 104, 112, 122, 128, 152, 16, 160, 1629, 1632, 1642, 1648, 1656, 169, 176, 184, 224, 24, 2400 };
public static SpeedMessage1SubMessage DefaultInstance {
@@ -2196,7 +2200,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SpeedMessage1SubMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SpeedMessage1SubMessage ThisMessage {
@@ -2590,6 +2594,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SpeedMessage1SubMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SpeedMessage1SubMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -2605,22 +2613,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SpeedMessage1SubMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SpeedMessage1SubMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SpeedMessage1SubMessage result;
+ private bool resultIsReadOnly;
+ private SpeedMessage1SubMessage result;
private SpeedMessage1SubMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SpeedMessage1SubMessage original = result;
result = new SpeedMessage1SubMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -2635,13 +2643,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SpeedMessage1SubMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -2657,11 +2665,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SpeedMessage1SubMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -3289,7 +3297,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SpeedMessage2 : pb::GeneratedMessage<SpeedMessage2, SpeedMessage2.Builder> {
private SpeedMessage2() { }
- private static readonly SpeedMessage2 defaultInstance = new Builder().BuildPartial();
+ private static readonly SpeedMessage2 defaultInstance = new SpeedMessage2().MakeReadOnly();
private static readonly string[] _speedMessage2FieldNames = new string[] { "field1", "field109", "field127", "field128", "field129", "field130", "field131", "field2", "field205", "field206", "field21", "field210", "field211", "field212", "field213", "field216", "field217", "field218", "field220", "field221", "field222", "field25", "field3", "field30", "field4", "field6", "field63", "field71", "field75", "group1" };
private static readonly uint[] _speedMessage2FieldTags = new uint[] { 10, 872, 1018, 1026, 1032, 1040, 1048, 18, 1640, 1648, 168, 1680, 1688, 1696, 1704, 1728, 1736, 1744, 1760, 1768, 1781, 205, 24, 240, 32, 50, 504, 568, 600, 83 };
public static SpeedMessage2 DefaultInstance {
@@ -3297,7 +3305,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SpeedMessage2 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SpeedMessage2 ThisMessage {
@@ -3322,7 +3330,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Group1 : pb::GeneratedMessage<Group1, Group1.Builder> {
private Group1() { }
- private static readonly Group1 defaultInstance = new Builder().BuildPartial();
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
private static readonly string[] _group1FieldNames = new string[] { "field11", "field12", "field13", "field14", "field15", "field16", "field20", "field22", "field24", "field26", "field27", "field28", "field29", "field31", "field5", "field73" };
private static readonly uint[] _group1FieldTags = new uint[] { 93, 98, 106, 114, 120, 130, 160, 178, 194, 213, 218, 224, 234, 250, 40, 584 };
public static Group1 DefaultInstance {
@@ -3330,7 +3338,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Group1 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override Group1 ThisMessage {
@@ -3504,12 +3512,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int Field31FieldNumber = 31;
private bool hasField31;
- private global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage field31_ = global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage field31_;
public bool HasField31 {
get { return hasField31; }
}
public global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage Field31 {
- get { return field31_; }
+ get { return field31_ ?? global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance; }
}
public override bool IsInitialized {
@@ -3680,6 +3688,13 @@ namespace Google.ProtocolBuffers.TestProtos {
public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private Group1 MakeReadOnly() {
+ field14_.MakeReadOnly();
+ field22_.MakeReadOnly();
+ field73_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -3695,22 +3710,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new Group1();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(Group1 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- Group1 result;
+ private bool resultIsReadOnly;
+ private Group1 result;
private Group1 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
Group1 original = result;
result = new Group1();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -3725,13 +3740,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new Group1();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -3747,14 +3762,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Group1 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.field14_.MakeReadOnly();
- result.field22_.MakeReadOnly();
- result.field73_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -4318,7 +4330,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearField31() {
PrepareBuilder();
result.hasField31 = false;
- result.field31_ = global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance;
+ result.field31_ = null;
return this;
}
}
@@ -4888,6 +4900,14 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SpeedMessage2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SpeedMessage2 MakeReadOnly() {
+ group1_.MakeReadOnly();
+ field128_.MakeReadOnly();
+ field127_.MakeReadOnly();
+ field130_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -4903,22 +4923,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SpeedMessage2();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SpeedMessage2 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SpeedMessage2 result;
+ private bool resultIsReadOnly;
+ private SpeedMessage2 result;
private SpeedMessage2 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SpeedMessage2 original = result;
result = new SpeedMessage2();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -4933,13 +4953,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SpeedMessage2();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -4955,15 +4975,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SpeedMessage2 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.group1_.MakeReadOnly();
- result.field128_.MakeReadOnly();
- result.field127_.MakeReadOnly();
- result.field130_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -5913,7 +5929,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SpeedMessage2GroupedMessage : pb::GeneratedMessage<SpeedMessage2GroupedMessage, SpeedMessage2GroupedMessage.Builder> {
private SpeedMessage2GroupedMessage() { }
- private static readonly SpeedMessage2GroupedMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly SpeedMessage2GroupedMessage defaultInstance = new SpeedMessage2GroupedMessage().MakeReadOnly();
private static readonly string[] _speedMessage2GroupedMessageFieldNames = new string[] { "field1", "field10", "field11", "field2", "field3", "field4", "field5", "field6", "field7", "field8", "field9" };
private static readonly uint[] _speedMessage2GroupedMessageFieldTags = new uint[] { 13, 85, 88, 21, 29, 32, 40, 48, 56, 69, 72 };
public static SpeedMessage2GroupedMessage DefaultInstance {
@@ -5921,7 +5937,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SpeedMessage2GroupedMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SpeedMessage2GroupedMessage ThisMessage {
@@ -6167,6 +6183,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SpeedMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SpeedMessage2GroupedMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6182,22 +6202,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SpeedMessage2GroupedMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SpeedMessage2GroupedMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SpeedMessage2GroupedMessage result;
+ private bool resultIsReadOnly;
+ private SpeedMessage2GroupedMessage result;
private SpeedMessage2GroupedMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SpeedMessage2GroupedMessage original = result;
result = new SpeedMessage2GroupedMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6212,13 +6232,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SpeedMessage2GroupedMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6234,11 +6254,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SpeedMessage2GroupedMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs
index 98672cf2..f31fdd89 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs
@@ -44,7 +44,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ImportMessageLite : pb::GeneratedMessageLite<ImportMessageLite, ImportMessageLite.Builder> {
private ImportMessageLite() { }
- private static readonly ImportMessageLite defaultInstance = new Builder().BuildPartial();
+ private static readonly ImportMessageLite defaultInstance = new ImportMessageLite().MakeReadOnly();
private static readonly string[] _importMessageLiteFieldNames = new string[] { "d" };
private static readonly uint[] _importMessageLiteFieldTags = new uint[] { 8 };
public static ImportMessageLite DefaultInstance {
@@ -52,7 +52,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ImportMessageLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ImportMessageLite ThisMessage {
@@ -147,6 +147,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ImportMessageLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ImportMessageLite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -162,22 +166,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ImportMessageLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ImportMessageLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ImportMessageLite result;
+ private bool resultIsReadOnly;
+ private ImportMessageLite result;
private ImportMessageLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ImportMessageLite original = result;
result = new ImportMessageLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -192,13 +196,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ImportMessageLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -210,11 +214,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ImportMessageLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
index 086dda1d..c12aef8e 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
@@ -72,7 +72,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ImportMessage : pb::GeneratedMessage<ImportMessage, ImportMessage.Builder> {
private ImportMessage() { }
- private static readonly ImportMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly ImportMessage defaultInstance = new ImportMessage().MakeReadOnly();
private static readonly string[] _importMessageFieldNames = new string[] { "d" };
private static readonly uint[] _importMessageFieldTags = new uint[] { 8 };
public static ImportMessage DefaultInstance {
@@ -80,7 +80,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ImportMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ImportMessage ThisMessage {
@@ -166,6 +166,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ImportMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ImportMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -181,22 +185,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ImportMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ImportMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ImportMessage result;
+ private bool resultIsReadOnly;
+ private ImportMessage result;
private ImportMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ImportMessage original = result;
result = new ImportMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -211,13 +215,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ImportMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -233,11 +237,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ImportMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
index 6a90612c..f9cec1af 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
@@ -104,7 +104,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMessageSet : pb::ExtendableMessage<TestMessageSet, TestMessageSet.Builder> {
private TestMessageSet() { }
- private static readonly TestMessageSet defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMessageSet defaultInstance = new TestMessageSet().MakeReadOnly();
private static readonly string[] _testMessageSetFieldNames = new string[] { };
private static readonly uint[] _testMessageSetFieldTags = new uint[] { };
public static TestMessageSet DefaultInstance {
@@ -112,7 +112,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMessageSet DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMessageSet ThisMessage {
@@ -186,6 +186,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMessageSet ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMessageSet MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -201,22 +205,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMessageSet();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMessageSet cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMessageSet result;
+ private bool resultIsReadOnly;
+ private TestMessageSet result;
private TestMessageSet PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMessageSet original = result;
result = new TestMessageSet();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -231,13 +235,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMessageSet();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -253,11 +257,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMessageSet BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -336,7 +340,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMessageSetContainer : pb::GeneratedMessage<TestMessageSetContainer, TestMessageSetContainer.Builder> {
private TestMessageSetContainer() { }
- private static readonly TestMessageSetContainer defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMessageSetContainer defaultInstance = new TestMessageSetContainer().MakeReadOnly();
private static readonly string[] _testMessageSetContainerFieldNames = new string[] { "message_set" };
private static readonly uint[] _testMessageSetContainerFieldTags = new uint[] { 10 };
public static TestMessageSetContainer DefaultInstance {
@@ -344,7 +348,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMessageSetContainer DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMessageSetContainer ThisMessage {
@@ -361,12 +365,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int MessageSetFieldNumber = 1;
private bool hasMessageSet;
- private global::Google.ProtocolBuffers.TestProtos.TestMessageSet messageSet_ = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestMessageSet messageSet_;
public bool HasMessageSet {
get { return hasMessageSet; }
}
public global::Google.ProtocolBuffers.TestProtos.TestMessageSet MessageSet {
- get { return messageSet_; }
+ get { return messageSet_ ?? global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance; }
}
public override bool IsInitialized {
@@ -430,6 +434,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMessageSetContainer ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMessageSetContainer MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -445,22 +453,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMessageSetContainer();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMessageSetContainer cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMessageSetContainer result;
+ private bool resultIsReadOnly;
+ private TestMessageSetContainer result;
private TestMessageSetContainer PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMessageSetContainer original = result;
result = new TestMessageSetContainer();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -475,13 +483,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMessageSetContainer();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -497,11 +505,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMessageSetContainer BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -617,7 +625,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearMessageSet() {
PrepareBuilder();
result.hasMessageSet = false;
- result.messageSet_ = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance;
+ result.messageSet_ = null;
return this;
}
}
@@ -631,7 +639,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMessageSetExtension1 : pb::GeneratedMessage<TestMessageSetExtension1, TestMessageSetExtension1.Builder> {
private TestMessageSetExtension1() { }
- private static readonly TestMessageSetExtension1 defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMessageSetExtension1 defaultInstance = new TestMessageSetExtension1().MakeReadOnly();
private static readonly string[] _testMessageSetExtension1FieldNames = new string[] { "i" };
private static readonly uint[] _testMessageSetExtension1FieldTags = new uint[] { 120 };
public static TestMessageSetExtension1 DefaultInstance {
@@ -639,7 +647,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMessageSetExtension1 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMessageSetExtension1 ThisMessage {
@@ -727,6 +735,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMessageSetExtension1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMessageSetExtension1 MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -742,22 +754,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMessageSetExtension1();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMessageSetExtension1 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMessageSetExtension1 result;
+ private bool resultIsReadOnly;
+ private TestMessageSetExtension1 result;
private TestMessageSetExtension1 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMessageSetExtension1 original = result;
result = new TestMessageSetExtension1();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -772,13 +784,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMessageSetExtension1();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -794,11 +806,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMessageSetExtension1 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -903,7 +915,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMessageSetExtension2 : pb::GeneratedMessage<TestMessageSetExtension2, TestMessageSetExtension2.Builder> {
private TestMessageSetExtension2() { }
- private static readonly TestMessageSetExtension2 defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMessageSetExtension2 defaultInstance = new TestMessageSetExtension2().MakeReadOnly();
private static readonly string[] _testMessageSetExtension2FieldNames = new string[] { "str" };
private static readonly uint[] _testMessageSetExtension2FieldTags = new uint[] { 202 };
public static TestMessageSetExtension2 DefaultInstance {
@@ -911,7 +923,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMessageSetExtension2 DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMessageSetExtension2 ThisMessage {
@@ -999,6 +1011,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMessageSetExtension2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMessageSetExtension2 MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1014,22 +1030,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMessageSetExtension2();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMessageSetExtension2 cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMessageSetExtension2 result;
+ private bool resultIsReadOnly;
+ private TestMessageSetExtension2 result;
private TestMessageSetExtension2 PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMessageSetExtension2 original = result;
result = new TestMessageSetExtension2();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1044,13 +1060,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMessageSetExtension2();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1066,11 +1082,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMessageSetExtension2 BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1176,7 +1192,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class RawMessageSet : pb::GeneratedMessage<RawMessageSet, RawMessageSet.Builder> {
private RawMessageSet() { }
- private static readonly RawMessageSet defaultInstance = new Builder().BuildPartial();
+ private static readonly RawMessageSet defaultInstance = new RawMessageSet().MakeReadOnly();
private static readonly string[] _rawMessageSetFieldNames = new string[] { "item" };
private static readonly uint[] _rawMessageSetFieldTags = new uint[] { 11 };
public static RawMessageSet DefaultInstance {
@@ -1184,7 +1200,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RawMessageSet DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override RawMessageSet ThisMessage {
@@ -1209,7 +1225,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Item : pb::GeneratedMessage<Item, Item.Builder> {
private Item() { }
- private static readonly Item defaultInstance = new Builder().BuildPartial();
+ private static readonly Item defaultInstance = new Item().MakeReadOnly();
private static readonly string[] _itemFieldNames = new string[] { "message", "type_id" };
private static readonly uint[] _itemFieldTags = new uint[] { 26, 16 };
public static Item DefaultInstance {
@@ -1217,7 +1233,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Item DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override Item ThisMessage {
@@ -1321,6 +1337,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static Item ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private Item MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1336,22 +1356,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new Item();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(Item cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- Item result;
+ private bool resultIsReadOnly;
+ private Item result;
private Item PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
Item original = result;
result = new Item();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1366,13 +1386,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new Item();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1388,11 +1408,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Item BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1596,6 +1616,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static RawMessageSet ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private RawMessageSet MakeReadOnly() {
+ item_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1611,22 +1636,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new RawMessageSet();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(RawMessageSet cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- RawMessageSet result;
+ private bool resultIsReadOnly;
+ private RawMessageSet result;
private RawMessageSet PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
RawMessageSet original = result;
result = new RawMessageSet();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1641,13 +1666,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new RawMessageSet();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1663,12 +1688,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RawMessageSet BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.item_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs
index 2cd2696b..ba56b145 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs
@@ -82,7 +82,7 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMessage : pb::ExtendableMessage<TestMessage, TestMessage.Builder> {
private TestMessage() { }
- private static readonly TestMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMessage defaultInstance = new TestMessage().MakeReadOnly();
private static readonly string[] _testMessageFieldNames = new string[] { "a" };
private static readonly uint[] _testMessageFieldTags = new uint[] { 8 };
public static TestMessage DefaultInstance {
@@ -90,7 +90,7 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
}
public override TestMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMessage ThisMessage {
@@ -180,6 +180,10 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
public static TestMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -195,22 +199,22 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMessage result;
+ private bool resultIsReadOnly;
+ private TestMessage result;
private TestMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMessage original = result;
result = new TestMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -225,13 +229,13 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -247,11 +251,11 @@ namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
}
public override TestMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
index 10c464a4..92d965d4 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
@@ -86,13 +86,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestOptimizedForSize : pb::ExtendableMessage<TestOptimizedForSize, TestOptimizedForSize.Builder> {
private TestOptimizedForSize() { }
- private static readonly TestOptimizedForSize defaultInstance = new Builder().BuildPartial();
+ private static readonly TestOptimizedForSize defaultInstance = new TestOptimizedForSize().MakeReadOnly();
public static TestOptimizedForSize DefaultInstance {
get { return defaultInstance; }
}
public override TestOptimizedForSize DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestOptimizedForSize ThisMessage {
@@ -123,12 +123,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int MsgFieldNumber = 19;
private bool hasMsg;
- private global::Google.ProtocolBuffers.TestProtos.ForeignMessage msg_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage msg_;
public bool HasMsg {
get { return hasMsg; }
}
public global::Google.ProtocolBuffers.TestProtos.ForeignMessage Msg {
- get { return msg_; }
+ get { return msg_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
}
public static TestOptimizedForSize ParseFrom(pb::ByteString data) {
@@ -161,6 +161,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestOptimizedForSize ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestOptimizedForSize MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -176,22 +180,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestOptimizedForSize();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestOptimizedForSize cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestOptimizedForSize result;
+ private bool resultIsReadOnly;
+ private TestOptimizedForSize result;
private TestOptimizedForSize PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestOptimizedForSize original = result;
result = new TestOptimizedForSize();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -206,13 +210,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestOptimizedForSize();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -228,11 +232,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestOptimizedForSize BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -292,7 +296,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearMsg() {
PrepareBuilder();
result.hasMsg = false;
- result.msg_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ result.msg_ = null;
return this;
}
}
@@ -306,13 +310,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestRequiredOptimizedForSize : pb::GeneratedMessage<TestRequiredOptimizedForSize, TestRequiredOptimizedForSize.Builder> {
private TestRequiredOptimizedForSize() { }
- private static readonly TestRequiredOptimizedForSize defaultInstance = new Builder().BuildPartial();
+ private static readonly TestRequiredOptimizedForSize defaultInstance = new TestRequiredOptimizedForSize().MakeReadOnly();
public static TestRequiredOptimizedForSize DefaultInstance {
get { return defaultInstance; }
}
public override TestRequiredOptimizedForSize DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestRequiredOptimizedForSize ThisMessage {
@@ -367,6 +371,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestRequiredOptimizedForSize ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestRequiredOptimizedForSize MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -382,22 +390,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestRequiredOptimizedForSize();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestRequiredOptimizedForSize cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestRequiredOptimizedForSize result;
+ private bool resultIsReadOnly;
+ private TestRequiredOptimizedForSize result;
private TestRequiredOptimizedForSize PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestRequiredOptimizedForSize original = result;
result = new TestRequiredOptimizedForSize();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -412,13 +420,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestRequiredOptimizedForSize();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -434,11 +442,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRequiredOptimizedForSize BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -472,13 +480,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestOptionalOptimizedForSize : pb::GeneratedMessage<TestOptionalOptimizedForSize, TestOptionalOptimizedForSize.Builder> {
private TestOptionalOptimizedForSize() { }
- private static readonly TestOptionalOptimizedForSize defaultInstance = new Builder().BuildPartial();
+ private static readonly TestOptionalOptimizedForSize defaultInstance = new TestOptionalOptimizedForSize().MakeReadOnly();
public static TestOptionalOptimizedForSize DefaultInstance {
get { return defaultInstance; }
}
public override TestOptionalOptimizedForSize DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestOptionalOptimizedForSize ThisMessage {
@@ -495,12 +503,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int OFieldNumber = 1;
private bool hasO;
- private global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize o_ = global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize o_;
public bool HasO {
get { return hasO; }
}
public global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize O {
- get { return o_; }
+ get { return o_ ?? global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.DefaultInstance; }
}
public static TestOptionalOptimizedForSize ParseFrom(pb::ByteString data) {
@@ -533,6 +541,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestOptionalOptimizedForSize ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestOptionalOptimizedForSize MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -548,22 +560,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestOptionalOptimizedForSize();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestOptionalOptimizedForSize cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestOptionalOptimizedForSize result;
+ private bool resultIsReadOnly;
+ private TestOptionalOptimizedForSize result;
private TestOptionalOptimizedForSize PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestOptionalOptimizedForSize original = result;
result = new TestOptionalOptimizedForSize();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -578,13 +590,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestOptionalOptimizedForSize();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -600,11 +612,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestOptionalOptimizedForSize BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -644,7 +656,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearO() {
PrepareBuilder();
result.hasO = false;
- result.o_ = global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.DefaultInstance;
+ result.o_ = null;
return this;
}
}
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
index 547d712a..35064953 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
@@ -1123,7 +1123,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestAllTypes : pb::GeneratedMessage<TestAllTypes, TestAllTypes.Builder> {
private TestAllTypes() { }
- private static readonly TestAllTypes defaultInstance = new Builder().BuildPartial();
+ private static readonly TestAllTypes defaultInstance = new TestAllTypes().MakeReadOnly();
private static readonly string[] _testAllTypesFieldNames = new string[] { "default_bool", "default_bytes", "default_cord", "default_double", "default_fixed32", "default_fixed64", "default_float", "default_foreign_enum", "default_import_enum", "default_int32", "default_int64", "default_nested_enum", "default_sfixed32", "default_sfixed64", "default_sint32", "default_sint64", "default_string", "default_string_piece", "default_uint32", "default_uint64", "optional_bool", "optional_bytes", "optional_cord", "optional_double", "optional_fixed32", "optional_fixed64", "optional_float", "optional_foreign_enum", "optional_foreign_message", "optional_import_enum", "optional_import_message", "optional_int32", "optional_int64", "optional_nested_enum", "optional_nested_message", "optional_sfixed32", "optional_sfixed64", "optional_sint32", "optional_sint64", "optional_string", "optional_string_piece", "optional_uint32", "optional_uint64", "optionalgroup", "repeated_bool", "repeated_bytes", "repeated_cord", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_nested_enum", "repeated_nested_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_string_piece", "repeated_uint32", "repeated_uint64", "repeatedgroup" };
private static readonly uint[] _testAllTypesFieldTags = new uint[] { 584, 602, 682, 577, 541, 545, 573, 656, 664, 488, 496, 648, 557, 561, 520, 528, 594, 674, 504, 512, 104, 122, 202, 97, 61, 65, 93, 176, 154, 184, 162, 8, 16, 168, 146, 77, 81, 40, 48, 114, 194, 24, 32, 131, 344, 362, 442, 337, 301, 305, 333, 416, 394, 424, 402, 248, 256, 408, 386, 317, 321, 280, 288, 354, 434, 264, 272, 371 };
public static TestAllTypes DefaultInstance {
@@ -1131,7 +1131,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllTypes DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestAllTypes ThisMessage {
@@ -1164,7 +1164,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
private NestedMessage() { }
- private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
private static readonly string[] _nestedMessageFieldNames = new string[] { "bb" };
private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8 };
public static NestedMessage DefaultInstance {
@@ -1172,7 +1172,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override NestedMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override NestedMessage ThisMessage {
@@ -1258,6 +1258,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1273,22 +1277,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new NestedMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(NestedMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- NestedMessage result;
+ private bool resultIsReadOnly;
+ private NestedMessage result;
private NestedMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
NestedMessage original = result;
result = new NestedMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1303,13 +1307,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new NestedMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1325,11 +1329,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override NestedMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1434,7 +1438,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OptionalGroup : pb::GeneratedMessage<OptionalGroup, OptionalGroup.Builder> {
private OptionalGroup() { }
- private static readonly OptionalGroup defaultInstance = new Builder().BuildPartial();
+ private static readonly OptionalGroup defaultInstance = new OptionalGroup().MakeReadOnly();
private static readonly string[] _optionalGroupFieldNames = new string[] { "a" };
private static readonly uint[] _optionalGroupFieldTags = new uint[] { 136 };
public static OptionalGroup DefaultInstance {
@@ -1442,7 +1446,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override OptionalGroup ThisMessage {
@@ -1528,6 +1532,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static OptionalGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private OptionalGroup MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1543,22 +1551,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new OptionalGroup();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(OptionalGroup cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- OptionalGroup result;
+ private bool resultIsReadOnly;
+ private OptionalGroup result;
private OptionalGroup PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
OptionalGroup original = result;
result = new OptionalGroup();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1573,13 +1581,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new OptionalGroup();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1595,11 +1603,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1704,7 +1712,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class RepeatedGroup : pb::GeneratedMessage<RepeatedGroup, RepeatedGroup.Builder> {
private RepeatedGroup() { }
- private static readonly RepeatedGroup defaultInstance = new Builder().BuildPartial();
+ private static readonly RepeatedGroup defaultInstance = new RepeatedGroup().MakeReadOnly();
private static readonly string[] _repeatedGroupFieldNames = new string[] { "a" };
private static readonly uint[] _repeatedGroupFieldTags = new uint[] { 376 };
public static RepeatedGroup DefaultInstance {
@@ -1712,7 +1720,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override RepeatedGroup ThisMessage {
@@ -1798,6 +1806,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static RepeatedGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private RepeatedGroup MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1813,22 +1825,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new RepeatedGroup();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(RepeatedGroup cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- RepeatedGroup result;
+ private bool resultIsReadOnly;
+ private RepeatedGroup result;
private RepeatedGroup PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
RepeatedGroup original = result;
result = new RepeatedGroup();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1843,13 +1855,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new RepeatedGroup();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1865,11 +1877,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -2128,42 +2140,42 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int OptionalGroupFieldNumber = 16;
private bool hasOptionalGroup;
- private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup optionalGroup_;
public bool HasOptionalGroup {
get { return hasOptionalGroup; }
}
public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {
- get { return optionalGroup_; }
+ get { return optionalGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance; }
}
public const int OptionalNestedMessageFieldNumber = 18;
private bool hasOptionalNestedMessage;
- private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage optionalNestedMessage_;
public bool HasOptionalNestedMessage {
get { return hasOptionalNestedMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
- get { return optionalNestedMessage_; }
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
}
public const int OptionalForeignMessageFieldNumber = 19;
private bool hasOptionalForeignMessage;
- private global::Google.ProtocolBuffers.TestProtos.ForeignMessage optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage optionalForeignMessage_;
public bool HasOptionalForeignMessage {
get { return hasOptionalForeignMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {
- get { return optionalForeignMessage_; }
+ get { return optionalForeignMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
}
public const int OptionalImportMessageFieldNumber = 20;
private bool hasOptionalImportMessage;
- private global::Google.ProtocolBuffers.TestProtos.ImportMessage optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ImportMessage optionalImportMessage_;
public bool HasOptionalImportMessage {
get { return hasOptionalImportMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {
- get { return optionalImportMessage_; }
+ get { return optionalImportMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance; }
}
public const int OptionalNestedEnumFieldNumber = 21;
@@ -3271,6 +3283,34 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestAllTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestAllTypes MakeReadOnly() {
+ repeatedInt32_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedUint32_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ repeatedSint32_.MakeReadOnly();
+ repeatedSint64_.MakeReadOnly();
+ repeatedFixed32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedSfixed32_.MakeReadOnly();
+ repeatedSfixed64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedDouble_.MakeReadOnly();
+ repeatedBool_.MakeReadOnly();
+ repeatedString_.MakeReadOnly();
+ repeatedBytes_.MakeReadOnly();
+ repeatedGroup_.MakeReadOnly();
+ repeatedNestedMessage_.MakeReadOnly();
+ repeatedForeignMessage_.MakeReadOnly();
+ repeatedImportMessage_.MakeReadOnly();
+ repeatedNestedEnum_.MakeReadOnly();
+ repeatedForeignEnum_.MakeReadOnly();
+ repeatedImportEnum_.MakeReadOnly();
+ repeatedStringPiece_.MakeReadOnly();
+ repeatedCord_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -3286,22 +3326,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestAllTypes();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestAllTypes cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestAllTypes result;
+ private bool resultIsReadOnly;
+ private TestAllTypes result;
private TestAllTypes PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestAllTypes original = result;
result = new TestAllTypes();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -3316,13 +3356,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestAllTypes();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -3338,35 +3378,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllTypes BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedInt32_.MakeReadOnly();
- result.repeatedInt64_.MakeReadOnly();
- result.repeatedUint32_.MakeReadOnly();
- result.repeatedUint64_.MakeReadOnly();
- result.repeatedSint32_.MakeReadOnly();
- result.repeatedSint64_.MakeReadOnly();
- result.repeatedFixed32_.MakeReadOnly();
- result.repeatedFixed64_.MakeReadOnly();
- result.repeatedSfixed32_.MakeReadOnly();
- result.repeatedSfixed64_.MakeReadOnly();
- result.repeatedFloat_.MakeReadOnly();
- result.repeatedDouble_.MakeReadOnly();
- result.repeatedBool_.MakeReadOnly();
- result.repeatedString_.MakeReadOnly();
- result.repeatedBytes_.MakeReadOnly();
- result.repeatedGroup_.MakeReadOnly();
- result.repeatedNestedMessage_.MakeReadOnly();
- result.repeatedForeignMessage_.MakeReadOnly();
- result.repeatedImportMessage_.MakeReadOnly();
- result.repeatedNestedEnum_.MakeReadOnly();
- result.repeatedForeignEnum_.MakeReadOnly();
- result.repeatedImportEnum_.MakeReadOnly();
- result.repeatedStringPiece_.MakeReadOnly();
- result.repeatedCord_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -4367,7 +4383,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalGroup() {
PrepareBuilder();
result.hasOptionalGroup = false;
- result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance;
+ result.optionalGroup_ = null;
return this;
}
@@ -4407,7 +4423,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalNestedMessage() {
PrepareBuilder();
result.hasOptionalNestedMessage = false;
- result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ result.optionalNestedMessage_ = null;
return this;
}
@@ -4447,7 +4463,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalForeignMessage() {
PrepareBuilder();
result.hasOptionalForeignMessage = false;
- result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ result.optionalForeignMessage_ = null;
return this;
}
@@ -4487,7 +4503,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalImportMessage() {
PrepareBuilder();
result.hasOptionalImportMessage = false;
- result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance;
+ result.optionalImportMessage_ = null;
return this;
}
@@ -5819,7 +5835,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestDeprecatedFields : pb::GeneratedMessage<TestDeprecatedFields, TestDeprecatedFields.Builder> {
private TestDeprecatedFields() { }
- private static readonly TestDeprecatedFields defaultInstance = new Builder().BuildPartial();
+ private static readonly TestDeprecatedFields defaultInstance = new TestDeprecatedFields().MakeReadOnly();
private static readonly string[] _testDeprecatedFieldsFieldNames = new string[] { "deprecated_int32" };
private static readonly uint[] _testDeprecatedFieldsFieldTags = new uint[] { 8 };
public static TestDeprecatedFields DefaultInstance {
@@ -5827,7 +5843,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDeprecatedFields DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestDeprecatedFields ThisMessage {
@@ -5915,6 +5931,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestDeprecatedFields ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestDeprecatedFields MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -5930,22 +5950,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestDeprecatedFields();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestDeprecatedFields cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestDeprecatedFields result;
+ private bool resultIsReadOnly;
+ private TestDeprecatedFields result;
private TestDeprecatedFields PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestDeprecatedFields original = result;
result = new TestDeprecatedFields();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -5960,13 +5980,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestDeprecatedFields();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -5982,11 +6002,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDeprecatedFields BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -6095,7 +6115,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ForeignMessage : pb::GeneratedMessage<ForeignMessage, ForeignMessage.Builder> {
private ForeignMessage() { }
- private static readonly ForeignMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly ForeignMessage defaultInstance = new ForeignMessage().MakeReadOnly();
private static readonly string[] _foreignMessageFieldNames = new string[] { "c" };
private static readonly uint[] _foreignMessageFieldTags = new uint[] { 8 };
public static ForeignMessage DefaultInstance {
@@ -6103,7 +6123,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ForeignMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ForeignMessage ThisMessage {
@@ -6189,6 +6209,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ForeignMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ForeignMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6204,22 +6228,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ForeignMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ForeignMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ForeignMessage result;
+ private bool resultIsReadOnly;
+ private ForeignMessage result;
private ForeignMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ForeignMessage original = result;
result = new ForeignMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6234,13 +6258,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ForeignMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6256,11 +6280,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ForeignMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -6365,7 +6389,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestAllExtensions : pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder> {
private TestAllExtensions() { }
- private static readonly TestAllExtensions defaultInstance = new Builder().BuildPartial();
+ private static readonly TestAllExtensions defaultInstance = new TestAllExtensions().MakeReadOnly();
private static readonly string[] _testAllExtensionsFieldNames = new string[] { };
private static readonly uint[] _testAllExtensionsFieldTags = new uint[] { };
public static TestAllExtensions DefaultInstance {
@@ -6373,7 +6397,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllExtensions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestAllExtensions ThisMessage {
@@ -6447,6 +6471,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestAllExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestAllExtensions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6462,22 +6490,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestAllExtensions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestAllExtensions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestAllExtensions result;
+ private bool resultIsReadOnly;
+ private TestAllExtensions result;
private TestAllExtensions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestAllExtensions original = result;
result = new TestAllExtensions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6492,13 +6520,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestAllExtensions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6514,11 +6542,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllExtensions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -6597,7 +6625,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OptionalGroup_extension : pb::GeneratedMessage<OptionalGroup_extension, OptionalGroup_extension.Builder> {
private OptionalGroup_extension() { }
- private static readonly OptionalGroup_extension defaultInstance = new Builder().BuildPartial();
+ private static readonly OptionalGroup_extension defaultInstance = new OptionalGroup_extension().MakeReadOnly();
private static readonly string[] _optionalGroupExtensionFieldNames = new string[] { "a" };
private static readonly uint[] _optionalGroupExtensionFieldTags = new uint[] { 136 };
public static OptionalGroup_extension DefaultInstance {
@@ -6605,7 +6633,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup_extension DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override OptionalGroup_extension ThisMessage {
@@ -6691,6 +6719,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static OptionalGroup_extension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private OptionalGroup_extension MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6706,22 +6738,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new OptionalGroup_extension();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(OptionalGroup_extension cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- OptionalGroup_extension result;
+ private bool resultIsReadOnly;
+ private OptionalGroup_extension result;
private OptionalGroup_extension PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
OptionalGroup_extension original = result;
result = new OptionalGroup_extension();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6736,13 +6768,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new OptionalGroup_extension();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6758,11 +6790,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup_extension BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -6867,7 +6899,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class RepeatedGroup_extension : pb::GeneratedMessage<RepeatedGroup_extension, RepeatedGroup_extension.Builder> {
private RepeatedGroup_extension() { }
- private static readonly RepeatedGroup_extension defaultInstance = new Builder().BuildPartial();
+ private static readonly RepeatedGroup_extension defaultInstance = new RepeatedGroup_extension().MakeReadOnly();
private static readonly string[] _repeatedGroupExtensionFieldNames = new string[] { "a" };
private static readonly uint[] _repeatedGroupExtensionFieldTags = new uint[] { 376 };
public static RepeatedGroup_extension DefaultInstance {
@@ -6875,7 +6907,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup_extension DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override RepeatedGroup_extension ThisMessage {
@@ -6961,6 +6993,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static RepeatedGroup_extension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private RepeatedGroup_extension MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6976,22 +7012,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new RepeatedGroup_extension();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(RepeatedGroup_extension cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- RepeatedGroup_extension result;
+ private bool resultIsReadOnly;
+ private RepeatedGroup_extension result;
private RepeatedGroup_extension PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
RepeatedGroup_extension original = result;
result = new RepeatedGroup_extension();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -7006,13 +7042,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new RepeatedGroup_extension();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -7028,11 +7064,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup_extension BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -7137,7 +7173,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestNestedExtension : pb::GeneratedMessage<TestNestedExtension, TestNestedExtension.Builder> {
private TestNestedExtension() { }
- private static readonly TestNestedExtension defaultInstance = new Builder().BuildPartial();
+ private static readonly TestNestedExtension defaultInstance = new TestNestedExtension().MakeReadOnly();
private static readonly string[] _testNestedExtensionFieldNames = new string[] { };
private static readonly uint[] _testNestedExtensionFieldTags = new uint[] { };
public static TestNestedExtension DefaultInstance {
@@ -7145,7 +7181,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestNestedExtension DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestNestedExtension ThisMessage {
@@ -7217,6 +7253,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestNestedExtension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestNestedExtension MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -7232,22 +7272,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestNestedExtension();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestNestedExtension cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestNestedExtension result;
+ private bool resultIsReadOnly;
+ private TestNestedExtension result;
private TestNestedExtension PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestNestedExtension original = result;
result = new TestNestedExtension();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -7262,13 +7302,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestNestedExtension();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -7284,11 +7324,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestNestedExtension BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -7366,7 +7406,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestRequired : pb::GeneratedMessage<TestRequired, TestRequired.Builder> {
private TestRequired() { }
- private static readonly TestRequired defaultInstance = new Builder().BuildPartial();
+ private static readonly TestRequired defaultInstance = new TestRequired().MakeReadOnly();
private static readonly string[] _testRequiredFieldNames = new string[] { "a", "b", "c", "dummy10", "dummy11", "dummy12", "dummy13", "dummy14", "dummy15", "dummy16", "dummy17", "dummy18", "dummy19", "dummy2", "dummy20", "dummy21", "dummy22", "dummy23", "dummy24", "dummy25", "dummy26", "dummy27", "dummy28", "dummy29", "dummy30", "dummy31", "dummy32", "dummy4", "dummy5", "dummy6", "dummy7", "dummy8", "dummy9" };
private static readonly uint[] _testRequiredFieldTags = new uint[] { 8, 24, 264, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 16, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 256, 32, 40, 48, 56, 64, 72 };
public static TestRequired DefaultInstance {
@@ -7374,7 +7414,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRequired DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestRequired ThisMessage {
@@ -7979,6 +8019,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestRequired ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestRequired MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -7994,22 +8038,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestRequired();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestRequired cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestRequired result;
+ private bool resultIsReadOnly;
+ private TestRequired result;
private TestRequired PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestRequired original = result;
result = new TestRequired();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -8024,13 +8068,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestRequired();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -8046,11 +8090,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRequired BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -9019,7 +9063,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestRequiredForeign : pb::GeneratedMessage<TestRequiredForeign, TestRequiredForeign.Builder> {
private TestRequiredForeign() { }
- private static readonly TestRequiredForeign defaultInstance = new Builder().BuildPartial();
+ private static readonly TestRequiredForeign defaultInstance = new TestRequiredForeign().MakeReadOnly();
private static readonly string[] _testRequiredForeignFieldNames = new string[] { "dummy", "optional_message", "repeated_message" };
private static readonly uint[] _testRequiredForeignFieldTags = new uint[] { 24, 10, 18 };
public static TestRequiredForeign DefaultInstance {
@@ -9027,7 +9071,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRequiredForeign DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestRequiredForeign ThisMessage {
@@ -9044,12 +9088,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int OptionalMessageFieldNumber = 1;
private bool hasOptionalMessage;
- private global::Google.ProtocolBuffers.TestProtos.TestRequired optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestRequired optionalMessage_;
public bool HasOptionalMessage {
get { return hasOptionalMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {
- get { return optionalMessage_; }
+ get { return optionalMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance; }
}
public const int RepeatedMessageFieldNumber = 2;
@@ -9153,6 +9197,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestRequiredForeign ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestRequiredForeign MakeReadOnly() {
+ repeatedMessage_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -9168,22 +9217,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestRequiredForeign();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestRequiredForeign cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestRequiredForeign result;
+ private bool resultIsReadOnly;
+ private TestRequiredForeign result;
private TestRequiredForeign PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestRequiredForeign original = result;
result = new TestRequiredForeign();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -9198,13 +9247,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestRequiredForeign();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -9220,12 +9269,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRequiredForeign BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedMessage_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -9355,7 +9403,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalMessage() {
PrepareBuilder();
result.hasOptionalMessage = false;
- result.optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance;
+ result.optionalMessage_ = null;
return this;
}
@@ -9433,7 +9481,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestForeignNested : pb::GeneratedMessage<TestForeignNested, TestForeignNested.Builder> {
private TestForeignNested() { }
- private static readonly TestForeignNested defaultInstance = new Builder().BuildPartial();
+ private static readonly TestForeignNested defaultInstance = new TestForeignNested().MakeReadOnly();
private static readonly string[] _testForeignNestedFieldNames = new string[] { "foreign_nested" };
private static readonly uint[] _testForeignNestedFieldTags = new uint[] { 10 };
public static TestForeignNested DefaultInstance {
@@ -9441,7 +9489,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestForeignNested DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestForeignNested ThisMessage {
@@ -9458,12 +9506,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int ForeignNestedFieldNumber = 1;
private bool hasForeignNested;
- private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage foreignNested_;
public bool HasForeignNested {
get { return hasForeignNested; }
}
public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {
- get { return foreignNested_; }
+ get { return foreignNested_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
}
public override bool IsInitialized {
@@ -9527,6 +9575,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestForeignNested ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestForeignNested MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -9542,22 +9594,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestForeignNested();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestForeignNested cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestForeignNested result;
+ private bool resultIsReadOnly;
+ private TestForeignNested result;
private TestForeignNested PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestForeignNested original = result;
result = new TestForeignNested();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -9572,13 +9624,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestForeignNested();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -9594,11 +9646,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestForeignNested BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -9714,7 +9766,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearForeignNested() {
PrepareBuilder();
result.hasForeignNested = false;
- result.foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ result.foreignNested_ = null;
return this;
}
}
@@ -9728,7 +9780,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestEmptyMessage : pb::GeneratedMessage<TestEmptyMessage, TestEmptyMessage.Builder> {
private TestEmptyMessage() { }
- private static readonly TestEmptyMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly TestEmptyMessage defaultInstance = new TestEmptyMessage().MakeReadOnly();
private static readonly string[] _testEmptyMessageFieldNames = new string[] { };
private static readonly uint[] _testEmptyMessageFieldTags = new uint[] { };
public static TestEmptyMessage DefaultInstance {
@@ -9736,7 +9788,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestEmptyMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestEmptyMessage ThisMessage {
@@ -9806,6 +9858,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestEmptyMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestEmptyMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -9821,22 +9877,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestEmptyMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestEmptyMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestEmptyMessage result;
+ private bool resultIsReadOnly;
+ private TestEmptyMessage result;
private TestEmptyMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestEmptyMessage original = result;
result = new TestEmptyMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -9851,13 +9907,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestEmptyMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -9873,11 +9929,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestEmptyMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -9955,7 +10011,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestEmptyMessageWithExtensions : pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> {
private TestEmptyMessageWithExtensions() { }
- private static readonly TestEmptyMessageWithExtensions defaultInstance = new Builder().BuildPartial();
+ private static readonly TestEmptyMessageWithExtensions defaultInstance = new TestEmptyMessageWithExtensions().MakeReadOnly();
private static readonly string[] _testEmptyMessageWithExtensionsFieldNames = new string[] { };
private static readonly uint[] _testEmptyMessageWithExtensionsFieldTags = new uint[] { };
public static TestEmptyMessageWithExtensions DefaultInstance {
@@ -9963,7 +10019,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestEmptyMessageWithExtensions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestEmptyMessageWithExtensions ThisMessage {
@@ -10037,6 +10093,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestEmptyMessageWithExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestEmptyMessageWithExtensions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -10052,22 +10112,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestEmptyMessageWithExtensions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestEmptyMessageWithExtensions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestEmptyMessageWithExtensions result;
+ private bool resultIsReadOnly;
+ private TestEmptyMessageWithExtensions result;
private TestEmptyMessageWithExtensions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestEmptyMessageWithExtensions original = result;
result = new TestEmptyMessageWithExtensions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -10082,13 +10142,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestEmptyMessageWithExtensions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -10104,11 +10164,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestEmptyMessageWithExtensions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -10187,7 +10247,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMultipleExtensionRanges : pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> {
private TestMultipleExtensionRanges() { }
- private static readonly TestMultipleExtensionRanges defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMultipleExtensionRanges defaultInstance = new TestMultipleExtensionRanges().MakeReadOnly();
private static readonly string[] _testMultipleExtensionRangesFieldNames = new string[] { };
private static readonly uint[] _testMultipleExtensionRangesFieldTags = new uint[] { };
public static TestMultipleExtensionRanges DefaultInstance {
@@ -10195,7 +10255,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMultipleExtensionRanges DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMultipleExtensionRanges ThisMessage {
@@ -10271,6 +10331,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMultipleExtensionRanges ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMultipleExtensionRanges MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -10286,22 +10350,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMultipleExtensionRanges();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMultipleExtensionRanges cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMultipleExtensionRanges result;
+ private bool resultIsReadOnly;
+ private TestMultipleExtensionRanges result;
private TestMultipleExtensionRanges PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMultipleExtensionRanges original = result;
result = new TestMultipleExtensionRanges();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -10316,13 +10380,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMultipleExtensionRanges();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -10338,11 +10402,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMultipleExtensionRanges BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -10421,7 +10485,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestReallyLargeTagNumber : pb::GeneratedMessage<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> {
private TestReallyLargeTagNumber() { }
- private static readonly TestReallyLargeTagNumber defaultInstance = new Builder().BuildPartial();
+ private static readonly TestReallyLargeTagNumber defaultInstance = new TestReallyLargeTagNumber().MakeReadOnly();
private static readonly string[] _testReallyLargeTagNumberFieldNames = new string[] { "a", "bb" };
private static readonly uint[] _testReallyLargeTagNumberFieldTags = new uint[] { 8, 2147483640 };
public static TestReallyLargeTagNumber DefaultInstance {
@@ -10429,7 +10493,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestReallyLargeTagNumber DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestReallyLargeTagNumber ThisMessage {
@@ -10531,6 +10595,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestReallyLargeTagNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestReallyLargeTagNumber MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -10546,22 +10614,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestReallyLargeTagNumber();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestReallyLargeTagNumber cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestReallyLargeTagNumber result;
+ private bool resultIsReadOnly;
+ private TestReallyLargeTagNumber result;
private TestReallyLargeTagNumber PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestReallyLargeTagNumber original = result;
result = new TestReallyLargeTagNumber();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -10576,13 +10644,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestReallyLargeTagNumber();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -10598,11 +10666,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestReallyLargeTagNumber BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -10734,7 +10802,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestRecursiveMessage : pb::GeneratedMessage<TestRecursiveMessage, TestRecursiveMessage.Builder> {
private TestRecursiveMessage() { }
- private static readonly TestRecursiveMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly TestRecursiveMessage defaultInstance = new TestRecursiveMessage().MakeReadOnly();
private static readonly string[] _testRecursiveMessageFieldNames = new string[] { "a", "i" };
private static readonly uint[] _testRecursiveMessageFieldTags = new uint[] { 10, 16 };
public static TestRecursiveMessage DefaultInstance {
@@ -10742,7 +10810,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRecursiveMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestRecursiveMessage ThisMessage {
@@ -10759,12 +10827,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int AFieldNumber = 1;
private bool hasA;
- private global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage a_;
public bool HasA {
get { return hasA; }
}
public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {
- get { return a_; }
+ get { return a_ ?? global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance; }
}
public const int IFieldNumber = 2;
@@ -10844,6 +10912,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestRecursiveMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestRecursiveMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -10859,22 +10931,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestRecursiveMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestRecursiveMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestRecursiveMessage result;
+ private bool resultIsReadOnly;
+ private TestRecursiveMessage result;
private TestRecursiveMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestRecursiveMessage original = result;
result = new TestRecursiveMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -10889,13 +10961,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestRecursiveMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -10911,11 +10983,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRecursiveMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -11038,7 +11110,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearA() {
PrepareBuilder();
result.hasA = false;
- result.a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance;
+ result.a_ = null;
return this;
}
@@ -11072,7 +11144,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMutualRecursionA : pb::GeneratedMessage<TestMutualRecursionA, TestMutualRecursionA.Builder> {
private TestMutualRecursionA() { }
- private static readonly TestMutualRecursionA defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMutualRecursionA defaultInstance = new TestMutualRecursionA().MakeReadOnly();
private static readonly string[] _testMutualRecursionAFieldNames = new string[] { "bb" };
private static readonly uint[] _testMutualRecursionAFieldTags = new uint[] { 10 };
public static TestMutualRecursionA DefaultInstance {
@@ -11080,7 +11152,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMutualRecursionA DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMutualRecursionA ThisMessage {
@@ -11097,12 +11169,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int BbFieldNumber = 1;
private bool hasBb;
- private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB bb_;
public bool HasBb {
get { return hasBb; }
}
public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {
- get { return bb_; }
+ get { return bb_ ?? global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance; }
}
public override bool IsInitialized {
@@ -11166,6 +11238,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMutualRecursionA ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMutualRecursionA MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -11181,22 +11257,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMutualRecursionA();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMutualRecursionA cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMutualRecursionA result;
+ private bool resultIsReadOnly;
+ private TestMutualRecursionA result;
private TestMutualRecursionA PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMutualRecursionA original = result;
result = new TestMutualRecursionA();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -11211,13 +11287,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMutualRecursionA();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -11233,11 +11309,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMutualRecursionA BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -11353,7 +11429,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearBb() {
PrepareBuilder();
result.hasBb = false;
- result.bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance;
+ result.bb_ = null;
return this;
}
}
@@ -11367,7 +11443,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMutualRecursionB : pb::GeneratedMessage<TestMutualRecursionB, TestMutualRecursionB.Builder> {
private TestMutualRecursionB() { }
- private static readonly TestMutualRecursionB defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMutualRecursionB defaultInstance = new TestMutualRecursionB().MakeReadOnly();
private static readonly string[] _testMutualRecursionBFieldNames = new string[] { "a", "optional_int32" };
private static readonly uint[] _testMutualRecursionBFieldTags = new uint[] { 10, 16 };
public static TestMutualRecursionB DefaultInstance {
@@ -11375,7 +11451,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMutualRecursionB DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMutualRecursionB ThisMessage {
@@ -11392,12 +11468,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int AFieldNumber = 1;
private bool hasA;
- private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA a_;
public bool HasA {
get { return hasA; }
}
public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {
- get { return a_; }
+ get { return a_ ?? global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance; }
}
public const int OptionalInt32FieldNumber = 2;
@@ -11477,6 +11553,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMutualRecursionB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMutualRecursionB MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -11492,22 +11572,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMutualRecursionB();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMutualRecursionB cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMutualRecursionB result;
+ private bool resultIsReadOnly;
+ private TestMutualRecursionB result;
private TestMutualRecursionB PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMutualRecursionB original = result;
result = new TestMutualRecursionB();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -11522,13 +11602,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMutualRecursionB();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -11544,11 +11624,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMutualRecursionB BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -11671,7 +11751,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearA() {
PrepareBuilder();
result.hasA = false;
- result.a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance;
+ result.a_ = null;
return this;
}
@@ -11705,7 +11785,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestDupFieldNumber : pb::GeneratedMessage<TestDupFieldNumber, TestDupFieldNumber.Builder> {
private TestDupFieldNumber() { }
- private static readonly TestDupFieldNumber defaultInstance = new Builder().BuildPartial();
+ private static readonly TestDupFieldNumber defaultInstance = new TestDupFieldNumber().MakeReadOnly();
private static readonly string[] _testDupFieldNumberFieldNames = new string[] { "a", "bar", "foo" };
private static readonly uint[] _testDupFieldNumberFieldTags = new uint[] { 8, 27, 19 };
public static TestDupFieldNumber DefaultInstance {
@@ -11713,7 +11793,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDupFieldNumber DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestDupFieldNumber ThisMessage {
@@ -11738,7 +11818,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Foo : pb::GeneratedMessage<Foo, Foo.Builder> {
private Foo() { }
- private static readonly Foo defaultInstance = new Builder().BuildPartial();
+ private static readonly Foo defaultInstance = new Foo().MakeReadOnly();
private static readonly string[] _fooFieldNames = new string[] { "a" };
private static readonly uint[] _fooFieldTags = new uint[] { 8 };
public static Foo DefaultInstance {
@@ -11746,7 +11826,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Foo DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override Foo ThisMessage {
@@ -11832,6 +11912,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static Foo ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private Foo MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -11847,22 +11931,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new Foo();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(Foo cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- Foo result;
+ private bool resultIsReadOnly;
+ private Foo result;
private Foo PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
Foo original = result;
result = new Foo();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -11877,13 +11961,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new Foo();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -11899,11 +11983,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Foo BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -12008,7 +12092,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Bar : pb::GeneratedMessage<Bar, Bar.Builder> {
private Bar() { }
- private static readonly Bar defaultInstance = new Builder().BuildPartial();
+ private static readonly Bar defaultInstance = new Bar().MakeReadOnly();
private static readonly string[] _barFieldNames = new string[] { "a" };
private static readonly uint[] _barFieldTags = new uint[] { 8 };
public static Bar DefaultInstance {
@@ -12016,7 +12100,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Bar DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override Bar ThisMessage {
@@ -12102,6 +12186,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static Bar ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private Bar MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -12117,22 +12205,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new Bar();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(Bar cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- Bar result;
+ private bool resultIsReadOnly;
+ private Bar result;
private Bar PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
Bar original = result;
result = new Bar();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -12147,13 +12235,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new Bar();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -12169,11 +12257,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Bar BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -12288,22 +12376,22 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int FooFieldNumber = 2;
private bool hasFoo;
- private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo foo_;
public bool HasFoo {
get { return hasFoo; }
}
public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {
- get { return foo_; }
+ get { return foo_ ?? global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance; }
}
public const int BarFieldNumber = 3;
private bool hasBar;
- private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar bar_;
public bool HasBar {
get { return hasBar; }
}
public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {
- get { return bar_; }
+ get { return bar_ ?? global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance; }
}
public override bool IsInitialized {
@@ -12379,6 +12467,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestDupFieldNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestDupFieldNumber MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -12394,22 +12486,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestDupFieldNumber();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestDupFieldNumber cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestDupFieldNumber result;
+ private bool resultIsReadOnly;
+ private TestDupFieldNumber result;
private TestDupFieldNumber PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestDupFieldNumber original = result;
result = new TestDupFieldNumber();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -12424,13 +12516,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestDupFieldNumber();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -12446,11 +12538,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDupFieldNumber BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -12605,7 +12697,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearFoo() {
PrepareBuilder();
result.hasFoo = false;
- result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance;
+ result.foo_ = null;
return this;
}
@@ -12645,7 +12737,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearBar() {
PrepareBuilder();
result.hasBar = false;
- result.bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance;
+ result.bar_ = null;
return this;
}
}
@@ -12659,7 +12751,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestNestedMessageHasBits : pb::GeneratedMessage<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> {
private TestNestedMessageHasBits() { }
- private static readonly TestNestedMessageHasBits defaultInstance = new Builder().BuildPartial();
+ private static readonly TestNestedMessageHasBits defaultInstance = new TestNestedMessageHasBits().MakeReadOnly();
private static readonly string[] _testNestedMessageHasBitsFieldNames = new string[] { "optional_nested_message" };
private static readonly uint[] _testNestedMessageHasBitsFieldTags = new uint[] { 10 };
public static TestNestedMessageHasBits DefaultInstance {
@@ -12667,7 +12759,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestNestedMessageHasBits DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestNestedMessageHasBits ThisMessage {
@@ -12692,7 +12784,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
private NestedMessage() { }
- private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
private static readonly string[] _nestedMessageFieldNames = new string[] { "nestedmessage_repeated_foreignmessage", "nestedmessage_repeated_int32" };
private static readonly uint[] _nestedMessageFieldTags = new uint[] { 18, 8 };
public static NestedMessage DefaultInstance {
@@ -12700,7 +12792,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override NestedMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override NestedMessage ThisMessage {
@@ -12811,6 +12903,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private NestedMessage MakeReadOnly() {
+ nestedmessageRepeatedInt32_.MakeReadOnly();
+ nestedmessageRepeatedForeignmessage_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -12826,22 +12924,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new NestedMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(NestedMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- NestedMessage result;
+ private bool resultIsReadOnly;
+ private NestedMessage result;
private NestedMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
NestedMessage original = result;
result = new NestedMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -12856,13 +12954,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new NestedMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -12878,13 +12976,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override NestedMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.nestedmessageRepeatedInt32_.MakeReadOnly();
- result.nestedmessageRepeatedForeignmessage_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -13051,12 +13147,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int OptionalNestedMessageFieldNumber = 1;
private bool hasOptionalNestedMessage;
- private global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage optionalNestedMessage_;
public bool HasOptionalNestedMessage {
get { return hasOptionalNestedMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {
- get { return optionalNestedMessage_; }
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance; }
}
public override bool IsInitialized {
@@ -13120,6 +13216,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestNestedMessageHasBits ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestNestedMessageHasBits MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -13135,22 +13235,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestNestedMessageHasBits();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestNestedMessageHasBits cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestNestedMessageHasBits result;
+ private bool resultIsReadOnly;
+ private TestNestedMessageHasBits result;
private TestNestedMessageHasBits PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestNestedMessageHasBits original = result;
result = new TestNestedMessageHasBits();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -13165,13 +13265,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestNestedMessageHasBits();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -13187,11 +13287,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestNestedMessageHasBits BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -13307,7 +13407,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalNestedMessage() {
PrepareBuilder();
result.hasOptionalNestedMessage = false;
- result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance;
+ result.optionalNestedMessage_ = null;
return this;
}
}
@@ -13321,7 +13421,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestCamelCaseFieldNames : pb::GeneratedMessage<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> {
private TestCamelCaseFieldNames() { }
- private static readonly TestCamelCaseFieldNames defaultInstance = new Builder().BuildPartial();
+ private static readonly TestCamelCaseFieldNames defaultInstance = new TestCamelCaseFieldNames().MakeReadOnly();
private static readonly string[] _testCamelCaseFieldNamesFieldNames = new string[] { "CordField", "EnumField", "MessageField", "PrimitiveField", "RepeatedCordField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedStringPieceField", "StringField", "StringPieceField" };
private static readonly uint[] _testCamelCaseFieldNamesFieldTags = new uint[] { 50, 24, 34, 8, 98, 72, 82, 56, 66, 90, 18, 42 };
public static TestCamelCaseFieldNames DefaultInstance {
@@ -13329,7 +13429,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestCamelCaseFieldNames DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestCamelCaseFieldNames ThisMessage {
@@ -13376,12 +13476,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int MessageFieldFieldNumber = 4;
private bool hasMessageField;
- private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageField_;
public bool HasMessageField {
get { return hasMessageField; }
}
public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {
- get { return messageField_; }
+ get { return messageField_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
}
public const int StringPieceFieldFieldNumber = 5;
@@ -13630,6 +13730,16 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestCamelCaseFieldNames ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestCamelCaseFieldNames MakeReadOnly() {
+ repeatedPrimitiveField_.MakeReadOnly();
+ repeatedStringField_.MakeReadOnly();
+ repeatedEnumField_.MakeReadOnly();
+ repeatedMessageField_.MakeReadOnly();
+ repeatedStringPieceField_.MakeReadOnly();
+ repeatedCordField_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -13645,22 +13755,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestCamelCaseFieldNames();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestCamelCaseFieldNames cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestCamelCaseFieldNames result;
+ private bool resultIsReadOnly;
+ private TestCamelCaseFieldNames result;
private TestCamelCaseFieldNames PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestCamelCaseFieldNames original = result;
result = new TestCamelCaseFieldNames();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -13675,13 +13785,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestCamelCaseFieldNames();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -13697,17 +13807,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestCamelCaseFieldNames BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedPrimitiveField_.MakeReadOnly();
- result.repeatedStringField_.MakeReadOnly();
- result.repeatedEnumField_.MakeReadOnly();
- result.repeatedMessageField_.MakeReadOnly();
- result.repeatedStringPieceField_.MakeReadOnly();
- result.repeatedCordField_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -13980,7 +14084,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearMessageField() {
PrepareBuilder();
result.hasMessageField = false;
- result.messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ result.messageField_ = null;
return this;
}
@@ -14236,7 +14340,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestFieldOrderings : pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder> {
private TestFieldOrderings() { }
- private static readonly TestFieldOrderings defaultInstance = new Builder().BuildPartial();
+ private static readonly TestFieldOrderings defaultInstance = new TestFieldOrderings().MakeReadOnly();
private static readonly string[] _testFieldOrderingsFieldNames = new string[] { "my_float", "my_int", "my_string" };
private static readonly uint[] _testFieldOrderingsFieldTags = new uint[] { 813, 8, 90 };
public static TestFieldOrderings DefaultInstance {
@@ -14244,7 +14348,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestFieldOrderings DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestFieldOrderings ThisMessage {
@@ -14367,6 +14471,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestFieldOrderings ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestFieldOrderings MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -14382,22 +14490,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestFieldOrderings();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestFieldOrderings cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestFieldOrderings result;
+ private bool resultIsReadOnly;
+ private TestFieldOrderings result;
private TestFieldOrderings PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestFieldOrderings original = result;
result = new TestFieldOrderings();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -14412,13 +14520,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestFieldOrderings();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -14434,11 +14542,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestFieldOrderings BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -14599,7 +14707,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestExtremeDefaultValues : pb::GeneratedMessage<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> {
private TestExtremeDefaultValues() { }
- private static readonly TestExtremeDefaultValues defaultInstance = new Builder().BuildPartial();
+ private static readonly TestExtremeDefaultValues defaultInstance = new TestExtremeDefaultValues().MakeReadOnly();
private static readonly string[] _testExtremeDefaultValuesFieldNames = new string[] { "escaped_bytes", "inf_double", "inf_float", "large_float", "large_uint32", "large_uint64", "nan_double", "nan_float", "neg_inf_double", "neg_inf_float", "negative_float", "negative_one_float", "one_float", "small_float", "small_int32", "small_int64", "small_negative_float", "utf8_string", "zero_float" };
private static readonly uint[] _testExtremeDefaultValuesFieldTags = new uint[] { 10, 113, 141, 101, 16, 24, 129, 157, 121, 149, 93, 85, 69, 77, 32, 40, 109, 50, 61 };
public static TestExtremeDefaultValues DefaultInstance {
@@ -14607,7 +14715,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestExtremeDefaultValues DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestExtremeDefaultValues ThisMessage {
@@ -14983,6 +15091,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestExtremeDefaultValues ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestExtremeDefaultValues MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -14998,22 +15110,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestExtremeDefaultValues();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestExtremeDefaultValues cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestExtremeDefaultValues result;
+ private bool resultIsReadOnly;
+ private TestExtremeDefaultValues result;
private TestExtremeDefaultValues PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestExtremeDefaultValues original = result;
result = new TestExtremeDefaultValues();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -15028,13 +15140,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestExtremeDefaultValues();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -15050,11 +15162,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestExtremeDefaultValues BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -15651,7 +15763,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OneString : pb::GeneratedMessage<OneString, OneString.Builder> {
private OneString() { }
- private static readonly OneString defaultInstance = new Builder().BuildPartial();
+ private static readonly OneString defaultInstance = new OneString().MakeReadOnly();
private static readonly string[] _oneStringFieldNames = new string[] { "data" };
private static readonly uint[] _oneStringFieldTags = new uint[] { 10 };
public static OneString DefaultInstance {
@@ -15659,7 +15771,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OneString DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override OneString ThisMessage {
@@ -15745,6 +15857,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static OneString ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private OneString MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -15760,22 +15876,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new OneString();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(OneString cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- OneString result;
+ private bool resultIsReadOnly;
+ private OneString result;
private OneString PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
OneString original = result;
result = new OneString();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -15790,13 +15906,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new OneString();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -15812,11 +15928,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OneString BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -15922,7 +16038,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OneBytes : pb::GeneratedMessage<OneBytes, OneBytes.Builder> {
private OneBytes() { }
- private static readonly OneBytes defaultInstance = new Builder().BuildPartial();
+ private static readonly OneBytes defaultInstance = new OneBytes().MakeReadOnly();
private static readonly string[] _oneBytesFieldNames = new string[] { "data" };
private static readonly uint[] _oneBytesFieldTags = new uint[] { 10 };
public static OneBytes DefaultInstance {
@@ -15930,7 +16046,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OneBytes DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override OneBytes ThisMessage {
@@ -16016,6 +16132,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static OneBytes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private OneBytes MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -16031,22 +16151,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new OneBytes();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(OneBytes cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- OneBytes result;
+ private bool resultIsReadOnly;
+ private OneBytes result;
private OneBytes PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
OneBytes original = result;
result = new OneBytes();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -16061,13 +16181,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new OneBytes();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -16083,11 +16203,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OneBytes BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -16193,7 +16313,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestPackedTypes : pb::GeneratedMessage<TestPackedTypes, TestPackedTypes.Builder> {
private TestPackedTypes() { }
- private static readonly TestPackedTypes defaultInstance = new Builder().BuildPartial();
+ private static readonly TestPackedTypes defaultInstance = new TestPackedTypes().MakeReadOnly();
private static readonly string[] _testPackedTypesFieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };
private static readonly uint[] _testPackedTypesFieldTags = new uint[] { 818, 810, 826, 770, 778, 802, 722, 730, 786, 794, 754, 762, 738, 746 };
public static TestPackedTypes DefaultInstance {
@@ -16201,7 +16321,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedTypes DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestPackedTypes ThisMessage {
@@ -16644,6 +16764,24 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestPackedTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestPackedTypes MakeReadOnly() {
+ packedInt32_.MakeReadOnly();
+ packedInt64_.MakeReadOnly();
+ packedUint32_.MakeReadOnly();
+ packedUint64_.MakeReadOnly();
+ packedSint32_.MakeReadOnly();
+ packedSint64_.MakeReadOnly();
+ packedFixed32_.MakeReadOnly();
+ packedFixed64_.MakeReadOnly();
+ packedSfixed32_.MakeReadOnly();
+ packedSfixed64_.MakeReadOnly();
+ packedFloat_.MakeReadOnly();
+ packedDouble_.MakeReadOnly();
+ packedBool_.MakeReadOnly();
+ packedEnum_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -16659,22 +16797,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestPackedTypes();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestPackedTypes cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestPackedTypes result;
+ private bool resultIsReadOnly;
+ private TestPackedTypes result;
private TestPackedTypes PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestPackedTypes original = result;
result = new TestPackedTypes();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -16689,13 +16827,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestPackedTypes();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -16711,25 +16849,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedTypes BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.packedInt32_.MakeReadOnly();
- result.packedInt64_.MakeReadOnly();
- result.packedUint32_.MakeReadOnly();
- result.packedUint64_.MakeReadOnly();
- result.packedSint32_.MakeReadOnly();
- result.packedSint64_.MakeReadOnly();
- result.packedFixed32_.MakeReadOnly();
- result.packedFixed64_.MakeReadOnly();
- result.packedSfixed32_.MakeReadOnly();
- result.packedSfixed64_.MakeReadOnly();
- result.packedFloat_.MakeReadOnly();
- result.packedDouble_.MakeReadOnly();
- result.packedBool_.MakeReadOnly();
- result.packedEnum_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -17368,7 +17492,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestUnpackedTypes : pb::GeneratedMessage<TestUnpackedTypes, TestUnpackedTypes.Builder> {
private TestUnpackedTypes() { }
- private static readonly TestUnpackedTypes defaultInstance = new Builder().BuildPartial();
+ private static readonly TestUnpackedTypes defaultInstance = new TestUnpackedTypes().MakeReadOnly();
private static readonly string[] _testUnpackedTypesFieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };
private static readonly uint[] _testUnpackedTypesFieldTags = new uint[] { 816, 809, 824, 773, 777, 805, 720, 728, 789, 793, 752, 760, 736, 744 };
public static TestUnpackedTypes DefaultInstance {
@@ -17376,7 +17500,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedTypes DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestUnpackedTypes ThisMessage {
@@ -17764,6 +17888,24 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestUnpackedTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestUnpackedTypes MakeReadOnly() {
+ unpackedInt32_.MakeReadOnly();
+ unpackedInt64_.MakeReadOnly();
+ unpackedUint32_.MakeReadOnly();
+ unpackedUint64_.MakeReadOnly();
+ unpackedSint32_.MakeReadOnly();
+ unpackedSint64_.MakeReadOnly();
+ unpackedFixed32_.MakeReadOnly();
+ unpackedFixed64_.MakeReadOnly();
+ unpackedSfixed32_.MakeReadOnly();
+ unpackedSfixed64_.MakeReadOnly();
+ unpackedFloat_.MakeReadOnly();
+ unpackedDouble_.MakeReadOnly();
+ unpackedBool_.MakeReadOnly();
+ unpackedEnum_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -17779,22 +17921,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestUnpackedTypes();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestUnpackedTypes cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestUnpackedTypes result;
+ private bool resultIsReadOnly;
+ private TestUnpackedTypes result;
private TestUnpackedTypes PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestUnpackedTypes original = result;
result = new TestUnpackedTypes();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -17809,13 +17951,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestUnpackedTypes();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -17831,25 +17973,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedTypes BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.unpackedInt32_.MakeReadOnly();
- result.unpackedInt64_.MakeReadOnly();
- result.unpackedUint32_.MakeReadOnly();
- result.unpackedUint64_.MakeReadOnly();
- result.unpackedSint32_.MakeReadOnly();
- result.unpackedSint64_.MakeReadOnly();
- result.unpackedFixed32_.MakeReadOnly();
- result.unpackedFixed64_.MakeReadOnly();
- result.unpackedSfixed32_.MakeReadOnly();
- result.unpackedSfixed64_.MakeReadOnly();
- result.unpackedFloat_.MakeReadOnly();
- result.unpackedDouble_.MakeReadOnly();
- result.unpackedBool_.MakeReadOnly();
- result.unpackedEnum_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -18488,7 +18616,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestPackedExtensions : pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder> {
private TestPackedExtensions() { }
- private static readonly TestPackedExtensions defaultInstance = new Builder().BuildPartial();
+ private static readonly TestPackedExtensions defaultInstance = new TestPackedExtensions().MakeReadOnly();
private static readonly string[] _testPackedExtensionsFieldNames = new string[] { };
private static readonly uint[] _testPackedExtensionsFieldTags = new uint[] { };
public static TestPackedExtensions DefaultInstance {
@@ -18496,7 +18624,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedExtensions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestPackedExtensions ThisMessage {
@@ -18570,6 +18698,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestPackedExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestPackedExtensions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -18585,22 +18717,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestPackedExtensions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestPackedExtensions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestPackedExtensions result;
+ private bool resultIsReadOnly;
+ private TestPackedExtensions result;
private TestPackedExtensions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestPackedExtensions original = result;
result = new TestPackedExtensions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -18615,13 +18747,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestPackedExtensions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -18637,11 +18769,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedExtensions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -18720,7 +18852,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestUnpackedExtensions : pb::ExtendableMessage<TestUnpackedExtensions, TestUnpackedExtensions.Builder> {
private TestUnpackedExtensions() { }
- private static readonly TestUnpackedExtensions defaultInstance = new Builder().BuildPartial();
+ private static readonly TestUnpackedExtensions defaultInstance = new TestUnpackedExtensions().MakeReadOnly();
private static readonly string[] _testUnpackedExtensionsFieldNames = new string[] { };
private static readonly uint[] _testUnpackedExtensionsFieldTags = new uint[] { };
public static TestUnpackedExtensions DefaultInstance {
@@ -18728,7 +18860,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedExtensions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestUnpackedExtensions ThisMessage {
@@ -18802,6 +18934,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestUnpackedExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestUnpackedExtensions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -18817,22 +18953,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestUnpackedExtensions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestUnpackedExtensions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestUnpackedExtensions result;
+ private bool resultIsReadOnly;
+ private TestUnpackedExtensions result;
private TestUnpackedExtensions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestUnpackedExtensions original = result;
result = new TestUnpackedExtensions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -18847,13 +18983,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestUnpackedExtensions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -18869,11 +19005,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedExtensions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -18952,7 +19088,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestDynamicExtensions : pb::GeneratedMessage<TestDynamicExtensions, TestDynamicExtensions.Builder> {
private TestDynamicExtensions() { }
- private static readonly TestDynamicExtensions defaultInstance = new Builder().BuildPartial();
+ private static readonly TestDynamicExtensions defaultInstance = new TestDynamicExtensions().MakeReadOnly();
private static readonly string[] _testDynamicExtensionsFieldNames = new string[] { "dynamic_enum_extension", "dynamic_message_extension", "enum_extension", "message_extension", "packed_extension", "repeated_extension", "scalar_extension" };
private static readonly uint[] _testDynamicExtensionsFieldTags = new uint[] { 16016, 16034, 16008, 16026, 16050, 16042, 16005 };
public static TestDynamicExtensions DefaultInstance {
@@ -18960,7 +19096,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDynamicExtensions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestDynamicExtensions ThisMessage {
@@ -18993,7 +19129,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class DynamicMessageType : pb::GeneratedMessage<DynamicMessageType, DynamicMessageType.Builder> {
private DynamicMessageType() { }
- private static readonly DynamicMessageType defaultInstance = new Builder().BuildPartial();
+ private static readonly DynamicMessageType defaultInstance = new DynamicMessageType().MakeReadOnly();
private static readonly string[] _dynamicMessageTypeFieldNames = new string[] { "dynamic_field" };
private static readonly uint[] _dynamicMessageTypeFieldTags = new uint[] { 16800 };
public static DynamicMessageType DefaultInstance {
@@ -19001,7 +19137,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override DynamicMessageType DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override DynamicMessageType ThisMessage {
@@ -19087,6 +19223,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static DynamicMessageType ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private DynamicMessageType MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -19102,22 +19242,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new DynamicMessageType();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(DynamicMessageType cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- DynamicMessageType result;
+ private bool resultIsReadOnly;
+ private DynamicMessageType result;
private DynamicMessageType PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
DynamicMessageType original = result;
result = new DynamicMessageType();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -19132,13 +19272,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new DynamicMessageType();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -19154,11 +19294,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override DynamicMessageType BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -19294,22 +19434,22 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int MessageExtensionFieldNumber = 2003;
private bool hasMessageExtension;
- private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageExtension_;
public bool HasMessageExtension {
get { return hasMessageExtension; }
}
public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
- get { return messageExtension_; }
+ get { return messageExtension_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
}
public const int DynamicMessageExtensionFieldNumber = 2004;
private bool hasDynamicMessageExtension;
- private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType dynamicMessageExtension_;
public bool HasDynamicMessageExtension {
get { return hasDynamicMessageExtension; }
}
public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
- get { return dynamicMessageExtension_; }
+ get { return dynamicMessageExtension_ ?? global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance; }
}
public const int RepeatedExtensionFieldNumber = 2005;
@@ -19447,6 +19587,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestDynamicExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestDynamicExtensions MakeReadOnly() {
+ repeatedExtension_.MakeReadOnly();
+ packedExtension_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -19462,22 +19608,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestDynamicExtensions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestDynamicExtensions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestDynamicExtensions result;
+ private bool resultIsReadOnly;
+ private TestDynamicExtensions result;
private TestDynamicExtensions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestDynamicExtensions original = result;
result = new TestDynamicExtensions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -19492,13 +19638,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestDynamicExtensions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -19514,13 +19660,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDynamicExtensions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedExtension_.MakeReadOnly();
- result.packedExtension_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -19762,7 +19906,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearMessageExtension() {
PrepareBuilder();
result.hasMessageExtension = false;
- result.messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ result.messageExtension_ = null;
return this;
}
@@ -19802,7 +19946,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearDynamicMessageExtension() {
PrepareBuilder();
result.hasDynamicMessageExtension = false;
- result.dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance;
+ result.dynamicMessageExtension_ = null;
return this;
}
@@ -19878,7 +20022,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::GeneratedMessage<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> {
private TestRepeatedScalarDifferentTagSizes() { }
- private static readonly TestRepeatedScalarDifferentTagSizes defaultInstance = new Builder().BuildPartial();
+ private static readonly TestRepeatedScalarDifferentTagSizes defaultInstance = new TestRepeatedScalarDifferentTagSizes().MakeReadOnly();
private static readonly string[] _testRepeatedScalarDifferentTagSizesFieldNames = new string[] { "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_int32", "repeated_int64", "repeated_uint64" };
private static readonly uint[] _testRepeatedScalarDifferentTagSizesFieldTags = new uint[] { 101, 16369, 2097141, 104, 16376, 2097144 };
public static TestRepeatedScalarDifferentTagSizes DefaultInstance {
@@ -19886,7 +20030,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestRepeatedScalarDifferentTagSizes ThisMessage {
@@ -20094,6 +20238,16 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestRepeatedScalarDifferentTagSizes MakeReadOnly() {
+ repeatedFixed32_.MakeReadOnly();
+ repeatedInt32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -20109,22 +20263,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestRepeatedScalarDifferentTagSizes();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestRepeatedScalarDifferentTagSizes cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestRepeatedScalarDifferentTagSizes result;
+ private bool resultIsReadOnly;
+ private TestRepeatedScalarDifferentTagSizes result;
private TestRepeatedScalarDifferentTagSizes PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestRepeatedScalarDifferentTagSizes original = result;
result = new TestRepeatedScalarDifferentTagSizes();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -20139,13 +20293,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestRepeatedScalarDifferentTagSizes();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -20161,17 +20315,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRepeatedScalarDifferentTagSizes BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedFixed32_.MakeReadOnly();
- result.repeatedInt32_.MakeReadOnly();
- result.repeatedFixed64_.MakeReadOnly();
- result.repeatedInt64_.MakeReadOnly();
- result.repeatedFloat_.MakeReadOnly();
- result.repeatedUint64_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -20492,7 +20640,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class FooRequest : pb::GeneratedMessage<FooRequest, FooRequest.Builder> {
private FooRequest() { }
- private static readonly FooRequest defaultInstance = new Builder().BuildPartial();
+ private static readonly FooRequest defaultInstance = new FooRequest().MakeReadOnly();
private static readonly string[] _fooRequestFieldNames = new string[] { };
private static readonly uint[] _fooRequestFieldTags = new uint[] { };
public static FooRequest DefaultInstance {
@@ -20500,7 +20648,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override FooRequest DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override FooRequest ThisMessage {
@@ -20570,6 +20718,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static FooRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private FooRequest MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -20585,22 +20737,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new FooRequest();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(FooRequest cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- FooRequest result;
+ private bool resultIsReadOnly;
+ private FooRequest result;
private FooRequest PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
FooRequest original = result;
result = new FooRequest();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -20615,13 +20767,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new FooRequest();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -20637,11 +20789,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override FooRequest BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -20719,7 +20871,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class FooResponse : pb::GeneratedMessage<FooResponse, FooResponse.Builder> {
private FooResponse() { }
- private static readonly FooResponse defaultInstance = new Builder().BuildPartial();
+ private static readonly FooResponse defaultInstance = new FooResponse().MakeReadOnly();
private static readonly string[] _fooResponseFieldNames = new string[] { };
private static readonly uint[] _fooResponseFieldTags = new uint[] { };
public static FooResponse DefaultInstance {
@@ -20727,7 +20879,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override FooResponse DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override FooResponse ThisMessage {
@@ -20797,6 +20949,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static FooResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private FooResponse MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -20812,22 +20968,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new FooResponse();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(FooResponse cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- FooResponse result;
+ private bool resultIsReadOnly;
+ private FooResponse result;
private FooResponse PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
FooResponse original = result;
result = new FooResponse();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -20842,13 +20998,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new FooResponse();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -20864,11 +21020,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override FooResponse BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -20946,7 +21102,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class BarRequest : pb::GeneratedMessage<BarRequest, BarRequest.Builder> {
private BarRequest() { }
- private static readonly BarRequest defaultInstance = new Builder().BuildPartial();
+ private static readonly BarRequest defaultInstance = new BarRequest().MakeReadOnly();
private static readonly string[] _barRequestFieldNames = new string[] { };
private static readonly uint[] _barRequestFieldTags = new uint[] { };
public static BarRequest DefaultInstance {
@@ -20954,7 +21110,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override BarRequest DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override BarRequest ThisMessage {
@@ -21024,6 +21180,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static BarRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private BarRequest MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -21039,22 +21199,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new BarRequest();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(BarRequest cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- BarRequest result;
+ private bool resultIsReadOnly;
+ private BarRequest result;
private BarRequest PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
BarRequest original = result;
result = new BarRequest();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -21069,13 +21229,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new BarRequest();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -21091,11 +21251,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override BarRequest BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -21173,7 +21333,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class BarResponse : pb::GeneratedMessage<BarResponse, BarResponse.Builder> {
private BarResponse() { }
- private static readonly BarResponse defaultInstance = new Builder().BuildPartial();
+ private static readonly BarResponse defaultInstance = new BarResponse().MakeReadOnly();
private static readonly string[] _barResponseFieldNames = new string[] { };
private static readonly uint[] _barResponseFieldTags = new uint[] { };
public static BarResponse DefaultInstance {
@@ -21181,7 +21341,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override BarResponse DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override BarResponse ThisMessage {
@@ -21251,6 +21411,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static BarResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private BarResponse MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -21266,22 +21430,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new BarResponse();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(BarResponse cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- BarResponse result;
+ private bool resultIsReadOnly;
+ private BarResponse result;
private BarResponse PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
BarResponse original = result;
result = new BarResponse();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -21296,13 +21460,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new BarResponse();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -21318,11 +21482,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override BarResponse BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs
index cb805861..ce8f66d9 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestRpcInterop.cs
@@ -84,7 +84,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SearchRequest : pb::GeneratedMessage<SearchRequest, SearchRequest.Builder> {
private SearchRequest() { }
- private static readonly SearchRequest defaultInstance = new Builder().BuildPartial();
+ private static readonly SearchRequest defaultInstance = new SearchRequest().MakeReadOnly();
private static readonly string[] _searchRequestFieldNames = new string[] { "Criteria" };
private static readonly uint[] _searchRequestFieldTags = new uint[] { 10 };
public static SearchRequest DefaultInstance {
@@ -92,7 +92,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SearchRequest DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SearchRequest ThisMessage {
@@ -185,6 +185,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SearchRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SearchRequest MakeReadOnly() {
+ criteria_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -200,22 +205,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SearchRequest();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SearchRequest cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SearchRequest result;
+ private bool resultIsReadOnly;
+ private SearchRequest result;
private SearchRequest PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SearchRequest original = result;
result = new SearchRequest();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -230,13 +235,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SearchRequest();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -252,12 +257,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SearchRequest BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.criteria_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -374,7 +378,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SearchResponse : pb::GeneratedMessage<SearchResponse, SearchResponse.Builder> {
private SearchResponse() { }
- private static readonly SearchResponse defaultInstance = new Builder().BuildPartial();
+ private static readonly SearchResponse defaultInstance = new SearchResponse().MakeReadOnly();
private static readonly string[] _searchResponseFieldNames = new string[] { "results" };
private static readonly uint[] _searchResponseFieldTags = new uint[] { 10 };
public static SearchResponse DefaultInstance {
@@ -382,7 +386,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SearchResponse DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SearchResponse ThisMessage {
@@ -407,7 +411,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ResultItem : pb::GeneratedMessage<ResultItem, ResultItem.Builder> {
private ResultItem() { }
- private static readonly ResultItem defaultInstance = new Builder().BuildPartial();
+ private static readonly ResultItem defaultInstance = new ResultItem().MakeReadOnly();
private static readonly string[] _resultItemFieldNames = new string[] { "name", "url" };
private static readonly uint[] _resultItemFieldTags = new uint[] { 18, 10 };
public static ResultItem DefaultInstance {
@@ -415,7 +419,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ResultItem DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ResultItem ThisMessage {
@@ -518,6 +522,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ResultItem ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ResultItem MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -533,22 +541,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ResultItem();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ResultItem cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ResultItem result;
+ private bool resultIsReadOnly;
+ private ResultItem result;
private ResultItem PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ResultItem original = result;
result = new ResultItem();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -563,13 +571,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ResultItem();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -585,11 +593,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ResultItem BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -797,6 +805,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SearchResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SearchResponse MakeReadOnly() {
+ results_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -812,22 +825,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SearchResponse();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SearchResponse cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SearchResponse result;
+ private bool resultIsReadOnly;
+ private SearchResponse result;
private SearchResponse PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SearchResponse original = result;
result = new SearchResponse();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -842,13 +855,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SearchResponse();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -864,12 +877,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SearchResponse BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.results_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -998,7 +1010,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class RefineSearchRequest : pb::GeneratedMessage<RefineSearchRequest, RefineSearchRequest.Builder> {
private RefineSearchRequest() { }
- private static readonly RefineSearchRequest defaultInstance = new Builder().BuildPartial();
+ private static readonly RefineSearchRequest defaultInstance = new RefineSearchRequest().MakeReadOnly();
private static readonly string[] _refineSearchRequestFieldNames = new string[] { "Criteria", "previous_results" };
private static readonly uint[] _refineSearchRequestFieldTags = new uint[] { 10, 18 };
public static RefineSearchRequest DefaultInstance {
@@ -1006,7 +1018,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RefineSearchRequest DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override RefineSearchRequest ThisMessage {
@@ -1035,12 +1047,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int PreviousResultsFieldNumber = 2;
private bool hasPreviousResults;
- private global::Google.ProtocolBuffers.TestProtos.SearchResponse previousResults_ = global::Google.ProtocolBuffers.TestProtos.SearchResponse.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.SearchResponse previousResults_;
public bool HasPreviousResults {
get { return hasPreviousResults; }
}
public global::Google.ProtocolBuffers.TestProtos.SearchResponse PreviousResults {
- get { return previousResults_; }
+ get { return previousResults_ ?? global::Google.ProtocolBuffers.TestProtos.SearchResponse.DefaultInstance; }
}
public override bool IsInitialized {
@@ -1117,6 +1129,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static RefineSearchRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private RefineSearchRequest MakeReadOnly() {
+ criteria_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1132,22 +1149,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new RefineSearchRequest();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(RefineSearchRequest cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- RefineSearchRequest result;
+ private bool resultIsReadOnly;
+ private RefineSearchRequest result;
private RefineSearchRequest PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
RefineSearchRequest original = result;
result = new RefineSearchRequest();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1162,13 +1179,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new RefineSearchRequest();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1184,12 +1201,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RefineSearchRequest BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.criteria_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1344,7 +1360,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearPreviousResults() {
PrepareBuilder();
result.hasPreviousResults = false;
- result.previousResults_ = global::Google.ProtocolBuffers.TestProtos.SearchResponse.DefaultInstance;
+ result.previousResults_ = null;
return this;
}
}
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs
index 798f09ad..e63d8c3b 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs
@@ -140,7 +140,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestXmlChild : pb::GeneratedMessage<TestXmlChild, TestXmlChild.Builder> {
private TestXmlChild() { }
- private static readonly TestXmlChild defaultInstance = new Builder().BuildPartial();
+ private static readonly TestXmlChild defaultInstance = new TestXmlChild().MakeReadOnly();
private static readonly string[] _testXmlChildFieldNames = new string[] { "binary", "options" };
private static readonly uint[] _testXmlChildFieldTags = new uint[] { 34, 24 };
public static TestXmlChild DefaultInstance {
@@ -148,7 +148,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestXmlChild DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestXmlChild ThisMessage {
@@ -259,6 +259,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestXmlChild ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestXmlChild MakeReadOnly() {
+ options_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -275,22 +280,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestXmlChild();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestXmlChild cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestXmlChild result;
+ private bool resultIsReadOnly;
+ private TestXmlChild result;
private TestXmlChild PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestXmlChild original = result;
result = new TestXmlChild();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -305,13 +310,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestXmlChild();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -327,12 +332,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestXmlChild BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.options_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -486,7 +490,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestXmlNoFields : pb::GeneratedMessage<TestXmlNoFields, TestXmlNoFields.Builder> {
private TestXmlNoFields() { }
- private static readonly TestXmlNoFields defaultInstance = new Builder().BuildPartial();
+ private static readonly TestXmlNoFields defaultInstance = new TestXmlNoFields().MakeReadOnly();
private static readonly string[] _testXmlNoFieldsFieldNames = new string[] { };
private static readonly uint[] _testXmlNoFieldsFieldTags = new uint[] { };
public static TestXmlNoFields DefaultInstance {
@@ -494,7 +498,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestXmlNoFields DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestXmlNoFields ThisMessage {
@@ -564,6 +568,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestXmlNoFields ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestXmlNoFields MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -580,22 +588,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestXmlNoFields();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestXmlNoFields cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestXmlNoFields result;
+ private bool resultIsReadOnly;
+ private TestXmlNoFields result;
private TestXmlNoFields PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestXmlNoFields original = result;
result = new TestXmlNoFields();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -610,13 +618,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestXmlNoFields();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -632,11 +640,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestXmlNoFields BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -715,7 +723,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestXmlRescursive : pb::GeneratedMessage<TestXmlRescursive, TestXmlRescursive.Builder> {
private TestXmlRescursive() { }
- private static readonly TestXmlRescursive defaultInstance = new Builder().BuildPartial();
+ private static readonly TestXmlRescursive defaultInstance = new TestXmlRescursive().MakeReadOnly();
private static readonly string[] _testXmlRescursiveFieldNames = new string[] { "child" };
private static readonly uint[] _testXmlRescursiveFieldTags = new uint[] { 10 };
public static TestXmlRescursive DefaultInstance {
@@ -723,7 +731,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestXmlRescursive DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestXmlRescursive ThisMessage {
@@ -740,12 +748,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int ChildFieldNumber = 1;
private bool hasChild;
- private global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive child_ = global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive child_;
public bool HasChild {
get { return hasChild; }
}
public global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive Child {
- get { return child_; }
+ get { return child_ ?? global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.DefaultInstance; }
}
public override bool IsInitialized {
@@ -809,6 +817,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestXmlRescursive ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestXmlRescursive MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -825,22 +837,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestXmlRescursive();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestXmlRescursive cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestXmlRescursive result;
+ private bool resultIsReadOnly;
+ private TestXmlRescursive result;
private TestXmlRescursive PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestXmlRescursive original = result;
result = new TestXmlRescursive();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -855,13 +867,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestXmlRescursive();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -877,11 +889,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestXmlRescursive BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -997,7 +1009,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearChild() {
PrepareBuilder();
result.hasChild = false;
- result.child_ = global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.DefaultInstance;
+ result.child_ = null;
return this;
}
}
@@ -1012,7 +1024,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestXmlMessage : pb::ExtendableMessage<TestXmlMessage, TestXmlMessage.Builder> {
private TestXmlMessage() { }
- private static readonly TestXmlMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly TestXmlMessage defaultInstance = new TestXmlMessage().MakeReadOnly();
private static readonly string[] _testXmlMessageFieldNames = new string[] { "child", "children", "number", "numbers", "text", "textlines", "valid" };
private static readonly uint[] _testXmlMessageFieldTags = new uint[] { 10, 3211, 48, 16, 26, 5602, 40 };
public static TestXmlMessage DefaultInstance {
@@ -1020,7 +1032,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestXmlMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestXmlMessage ThisMessage {
@@ -1046,7 +1058,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Children : pb::GeneratedMessage<Children, Children.Builder> {
private Children() { }
- private static readonly Children defaultInstance = new Builder().BuildPartial();
+ private static readonly Children defaultInstance = new Children().MakeReadOnly();
private static readonly string[] _childrenFieldNames = new string[] { "binary", "options" };
private static readonly uint[] _childrenFieldTags = new uint[] { 34, 24 };
public static Children DefaultInstance {
@@ -1054,7 +1066,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Children DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override Children ThisMessage {
@@ -1165,6 +1177,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static Children ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private Children MakeReadOnly() {
+ options_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1181,22 +1198,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new Children();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(Children cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- Children result;
+ private bool resultIsReadOnly;
+ private Children result;
private Children PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
Children original = result;
result = new Children();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1211,13 +1228,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new Children();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1233,12 +1250,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Children BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.options_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1445,12 +1461,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int ChildFieldNumber = 1;
private bool hasChild;
- private global::Google.ProtocolBuffers.TestProtos.TestXmlChild child_ = global::Google.ProtocolBuffers.TestProtos.TestXmlChild.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestXmlChild child_;
public bool HasChild {
get { return hasChild; }
}
public global::Google.ProtocolBuffers.TestProtos.TestXmlChild Child {
- get { return child_; }
+ get { return child_ ?? global::Google.ProtocolBuffers.TestProtos.TestXmlChild.DefaultInstance; }
}
public const int ChildrenFieldNumber = 401;
@@ -1576,6 +1592,13 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestXmlMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestXmlMessage MakeReadOnly() {
+ numbers_.MakeReadOnly();
+ textlines_.MakeReadOnly();
+ children_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1592,22 +1615,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestXmlMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestXmlMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestXmlMessage result;
+ private bool resultIsReadOnly;
+ private TestXmlMessage result;
private TestXmlMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestXmlMessage original = result;
result = new TestXmlMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1622,13 +1645,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestXmlMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1644,14 +1667,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestXmlMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.numbers_.MakeReadOnly();
- result.textlines_.MakeReadOnly();
- result.children_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1934,7 +1954,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearChild() {
PrepareBuilder();
result.hasChild = false;
- result.child_ = global::Google.ProtocolBuffers.TestProtos.TestXmlChild.DefaultInstance;
+ result.child_ = null;
return this;
}
@@ -1993,7 +2013,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestXmlExtension : pb::GeneratedMessage<TestXmlExtension, TestXmlExtension.Builder> {
private TestXmlExtension() { }
- private static readonly TestXmlExtension defaultInstance = new Builder().BuildPartial();
+ private static readonly TestXmlExtension defaultInstance = new TestXmlExtension().MakeReadOnly();
private static readonly string[] _testXmlExtensionFieldNames = new string[] { "number" };
private static readonly uint[] _testXmlExtensionFieldTags = new uint[] { 8 };
public static TestXmlExtension DefaultInstance {
@@ -2001,7 +2021,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestXmlExtension DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestXmlExtension ThisMessage {
@@ -2088,6 +2108,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestXmlExtension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestXmlExtension MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -2104,22 +2128,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestXmlExtension();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestXmlExtension cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestXmlExtension result;
+ private bool resultIsReadOnly;
+ private TestXmlExtension result;
private TestXmlExtension PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestXmlExtension original = result;
result = new TestXmlExtension();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -2134,13 +2158,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestXmlExtension();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -2156,11 +2180,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestXmlExtension BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs b/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
index 2bebb011..4eb9c05d 100644
--- a/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
+++ b/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
@@ -127,7 +127,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class CSharpFileOptions : pb::GeneratedMessage<CSharpFileOptions, CSharpFileOptions.Builder> {
private CSharpFileOptions() { }
- private static readonly CSharpFileOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly CSharpFileOptions defaultInstance = new CSharpFileOptions().MakeReadOnly();
private static readonly string[] _cSharpFileOptionsFieldNames = new string[] { "add_serializable", "cls_compliance", "code_contracts", "expand_namespace_directories", "file_extension", "ignore_google_protobuf", "multiple_files", "namespace", "nest_classes", "output_directory", "public_classes", "service_generator_type", "umbrella_classname", "umbrella_namespace" };
private static readonly uint[] _cSharpFileOptionsFieldTags = new uint[] { 72, 64, 48, 56, 1770, 1792, 32, 10, 40, 1786, 24, 1800, 18, 1778 };
public static CSharpFileOptions DefaultInstance {
@@ -135,7 +135,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override CSharpFileOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override CSharpFileOptions ThisMessage {
@@ -429,6 +429,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static CSharpFileOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private CSharpFileOptions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -444,22 +448,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new CSharpFileOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(CSharpFileOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- CSharpFileOptions result;
+ private bool resultIsReadOnly;
+ private CSharpFileOptions result;
private CSharpFileOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
CSharpFileOptions original = result;
result = new CSharpFileOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -474,13 +478,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new CSharpFileOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -496,11 +500,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override CSharpFileOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -969,7 +973,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class CSharpFieldOptions : pb::GeneratedMessage<CSharpFieldOptions, CSharpFieldOptions.Builder> {
private CSharpFieldOptions() { }
- private static readonly CSharpFieldOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly CSharpFieldOptions defaultInstance = new CSharpFieldOptions().MakeReadOnly();
private static readonly string[] _cSharpFieldOptionsFieldNames = new string[] { "property_name" };
private static readonly uint[] _cSharpFieldOptionsFieldTags = new uint[] { 10 };
public static CSharpFieldOptions DefaultInstance {
@@ -977,7 +981,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override CSharpFieldOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override CSharpFieldOptions ThisMessage {
@@ -1063,6 +1067,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static CSharpFieldOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private CSharpFieldOptions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1078,22 +1086,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new CSharpFieldOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(CSharpFieldOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- CSharpFieldOptions result;
+ private bool resultIsReadOnly;
+ private CSharpFieldOptions result;
private CSharpFieldOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
CSharpFieldOptions original = result;
result = new CSharpFieldOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1108,13 +1116,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new CSharpFieldOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1130,11 +1138,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override CSharpFieldOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1240,7 +1248,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class CSharpServiceOptions : pb::GeneratedMessage<CSharpServiceOptions, CSharpServiceOptions.Builder> {
private CSharpServiceOptions() { }
- private static readonly CSharpServiceOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly CSharpServiceOptions defaultInstance = new CSharpServiceOptions().MakeReadOnly();
private static readonly string[] _cSharpServiceOptionsFieldNames = new string[] { "interface_id" };
private static readonly uint[] _cSharpServiceOptionsFieldTags = new uint[] { 10 };
public static CSharpServiceOptions DefaultInstance {
@@ -1248,7 +1256,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override CSharpServiceOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override CSharpServiceOptions ThisMessage {
@@ -1334,6 +1342,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static CSharpServiceOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private CSharpServiceOptions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1349,22 +1361,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new CSharpServiceOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(CSharpServiceOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- CSharpServiceOptions result;
+ private bool resultIsReadOnly;
+ private CSharpServiceOptions result;
private CSharpServiceOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
CSharpServiceOptions original = result;
result = new CSharpServiceOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1379,13 +1391,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new CSharpServiceOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1401,11 +1413,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override CSharpServiceOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1511,7 +1523,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class CSharpMethodOptions : pb::GeneratedMessage<CSharpMethodOptions, CSharpMethodOptions.Builder> {
private CSharpMethodOptions() { }
- private static readonly CSharpMethodOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly CSharpMethodOptions defaultInstance = new CSharpMethodOptions().MakeReadOnly();
private static readonly string[] _cSharpMethodOptionsFieldNames = new string[] { "dispatch_id" };
private static readonly uint[] _cSharpMethodOptionsFieldTags = new uint[] { 8 };
public static CSharpMethodOptions DefaultInstance {
@@ -1519,7 +1531,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override CSharpMethodOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override CSharpMethodOptions ThisMessage {
@@ -1605,6 +1617,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static CSharpMethodOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private CSharpMethodOptions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1620,22 +1636,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new CSharpMethodOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(CSharpMethodOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- CSharpMethodOptions result;
+ private bool resultIsReadOnly;
+ private CSharpMethodOptions result;
private CSharpMethodOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
CSharpMethodOptions original = result;
result = new CSharpMethodOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1650,13 +1666,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new CSharpMethodOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1672,11 +1688,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override CSharpMethodOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs b/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
index de6e2ed8..01048ed3 100644
--- a/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
+++ b/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
@@ -234,7 +234,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class FileDescriptorSet : pb::GeneratedMessage<FileDescriptorSet, FileDescriptorSet.Builder> {
private FileDescriptorSet() { }
- private static readonly FileDescriptorSet defaultInstance = new Builder().BuildPartial();
+ private static readonly FileDescriptorSet defaultInstance = new FileDescriptorSet().MakeReadOnly();
private static readonly string[] _fileDescriptorSetFieldNames = new string[] { "file" };
private static readonly uint[] _fileDescriptorSetFieldTags = new uint[] { 10 };
public static FileDescriptorSet DefaultInstance {
@@ -242,7 +242,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override FileDescriptorSet DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override FileDescriptorSet ThisMessage {
@@ -333,6 +333,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static FileDescriptorSet ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private FileDescriptorSet MakeReadOnly() {
+ file_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -348,22 +353,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new FileDescriptorSet();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(FileDescriptorSet cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- FileDescriptorSet result;
+ private bool resultIsReadOnly;
+ private FileDescriptorSet result;
private FileDescriptorSet PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
FileDescriptorSet original = result;
result = new FileDescriptorSet();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -378,13 +383,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new FileDescriptorSet();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -400,12 +405,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override FileDescriptorSet BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.file_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -534,7 +538,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class FileDescriptorProto : pb::GeneratedMessage<FileDescriptorProto, FileDescriptorProto.Builder> {
private FileDescriptorProto() { }
- private static readonly FileDescriptorProto defaultInstance = new Builder().BuildPartial();
+ private static readonly FileDescriptorProto defaultInstance = new FileDescriptorProto().MakeReadOnly();
private static readonly string[] _fileDescriptorProtoFieldNames = new string[] { "dependency", "enum_type", "extension", "message_type", "name", "options", "package", "service" };
private static readonly uint[] _fileDescriptorProtoFieldTags = new uint[] { 26, 42, 58, 34, 10, 66, 18, 50 };
public static FileDescriptorProto DefaultInstance {
@@ -542,7 +546,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override FileDescriptorProto DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override FileDescriptorProto ThisMessage {
@@ -639,12 +643,12 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public const int OptionsFieldNumber = 8;
private bool hasOptions;
- private global::Google.ProtocolBuffers.DescriptorProtos.FileOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.DefaultInstance;
+ private global::Google.ProtocolBuffers.DescriptorProtos.FileOptions options_;
public bool HasOptions {
get { return hasOptions; }
}
public global::Google.ProtocolBuffers.DescriptorProtos.FileOptions Options {
- get { return options_; }
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.DefaultInstance; }
}
public override bool IsInitialized {
@@ -770,6 +774,15 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static FileDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private FileDescriptorProto MakeReadOnly() {
+ dependency_.MakeReadOnly();
+ messageType_.MakeReadOnly();
+ enumType_.MakeReadOnly();
+ service_.MakeReadOnly();
+ extension_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -785,22 +798,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new FileDescriptorProto();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(FileDescriptorProto cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- FileDescriptorProto result;
+ private bool resultIsReadOnly;
+ private FileDescriptorProto result;
private FileDescriptorProto PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
FileDescriptorProto original = result;
result = new FileDescriptorProto();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -815,13 +828,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new FileDescriptorProto();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -837,16 +850,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override FileDescriptorProto BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.dependency_.MakeReadOnly();
- result.messageType_.MakeReadOnly();
- result.enumType_.MakeReadOnly();
- result.service_.MakeReadOnly();
- result.extension_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1261,7 +1269,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public Builder ClearOptions() {
PrepareBuilder();
result.hasOptions = false;
- result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.DefaultInstance;
+ result.options_ = null;
return this;
}
}
@@ -1275,7 +1283,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class DescriptorProto : pb::GeneratedMessage<DescriptorProto, DescriptorProto.Builder> {
private DescriptorProto() { }
- private static readonly DescriptorProto defaultInstance = new Builder().BuildPartial();
+ private static readonly DescriptorProto defaultInstance = new DescriptorProto().MakeReadOnly();
private static readonly string[] _descriptorProtoFieldNames = new string[] { "enum_type", "extension", "extension_range", "field", "name", "nested_type", "options" };
private static readonly uint[] _descriptorProtoFieldTags = new uint[] { 34, 50, 42, 18, 10, 26, 58 };
public static DescriptorProto DefaultInstance {
@@ -1283,7 +1291,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override DescriptorProto DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override DescriptorProto ThisMessage {
@@ -1308,7 +1316,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ExtensionRange : pb::GeneratedMessage<ExtensionRange, ExtensionRange.Builder> {
private ExtensionRange() { }
- private static readonly ExtensionRange defaultInstance = new Builder().BuildPartial();
+ private static readonly ExtensionRange defaultInstance = new ExtensionRange().MakeReadOnly();
private static readonly string[] _extensionRangeFieldNames = new string[] { "end", "start" };
private static readonly uint[] _extensionRangeFieldTags = new uint[] { 16, 8 };
public static ExtensionRange DefaultInstance {
@@ -1316,7 +1324,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override ExtensionRange DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ExtensionRange ThisMessage {
@@ -1418,6 +1426,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static ExtensionRange ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ExtensionRange MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1433,22 +1445,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ExtensionRange();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ExtensionRange cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ExtensionRange result;
+ private bool resultIsReadOnly;
+ private ExtensionRange result;
private ExtensionRange PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ExtensionRange original = result;
result = new ExtensionRange();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1463,13 +1475,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ExtensionRange();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1485,11 +1497,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override ExtensionRange BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1691,12 +1703,12 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public const int OptionsFieldNumber = 7;
private bool hasOptions;
- private global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.DefaultInstance;
+ private global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions options_;
public bool HasOptions {
get { return hasOptions; }
}
public global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions Options {
- get { return options_; }
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.DefaultInstance; }
}
public override bool IsInitialized {
@@ -1811,6 +1823,15 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static DescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private DescriptorProto MakeReadOnly() {
+ field_.MakeReadOnly();
+ extension_.MakeReadOnly();
+ nestedType_.MakeReadOnly();
+ enumType_.MakeReadOnly();
+ extensionRange_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1826,22 +1847,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new DescriptorProto();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(DescriptorProto cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- DescriptorProto result;
+ private bool resultIsReadOnly;
+ private DescriptorProto result;
private DescriptorProto PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
DescriptorProto original = result;
result = new DescriptorProto();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1856,13 +1877,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new DescriptorProto();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1878,16 +1899,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override DescriptorProto BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.field_.MakeReadOnly();
- result.extension_.MakeReadOnly();
- result.nestedType_.MakeReadOnly();
- result.enumType_.MakeReadOnly();
- result.extensionRange_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -2286,7 +2302,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public Builder ClearOptions() {
PrepareBuilder();
result.hasOptions = false;
- result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.DefaultInstance;
+ result.options_ = null;
return this;
}
}
@@ -2300,7 +2316,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class FieldDescriptorProto : pb::GeneratedMessage<FieldDescriptorProto, FieldDescriptorProto.Builder> {
private FieldDescriptorProto() { }
- private static readonly FieldDescriptorProto defaultInstance = new Builder().BuildPartial();
+ private static readonly FieldDescriptorProto defaultInstance = new FieldDescriptorProto().MakeReadOnly();
private static readonly string[] _fieldDescriptorProtoFieldNames = new string[] { "default_value", "extendee", "label", "name", "number", "options", "type", "type_name" };
private static readonly uint[] _fieldDescriptorProtoFieldTags = new uint[] { 58, 18, 32, 10, 24, 66, 40, 50 };
public static FieldDescriptorProto DefaultInstance {
@@ -2308,7 +2324,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override FieldDescriptorProto DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override FieldDescriptorProto ThisMessage {
@@ -2434,12 +2450,12 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public const int OptionsFieldNumber = 8;
private bool hasOptions;
- private global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.DefaultInstance;
+ private global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions options_;
public bool HasOptions {
get { return hasOptions; }
}
public global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions Options {
- get { return options_; }
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.DefaultInstance; }
}
public override bool IsInitialized {
@@ -2548,6 +2564,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static FieldDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private FieldDescriptorProto MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -2563,22 +2583,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new FieldDescriptorProto();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(FieldDescriptorProto cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- FieldDescriptorProto result;
+ private bool resultIsReadOnly;
+ private FieldDescriptorProto result;
private FieldDescriptorProto PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
FieldDescriptorProto original = result;
result = new FieldDescriptorProto();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -2593,13 +2613,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new FieldDescriptorProto();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -2615,11 +2635,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override FieldDescriptorProto BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -2944,7 +2964,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public Builder ClearOptions() {
PrepareBuilder();
result.hasOptions = false;
- result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.DefaultInstance;
+ result.options_ = null;
return this;
}
}
@@ -2958,7 +2978,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class EnumDescriptorProto : pb::GeneratedMessage<EnumDescriptorProto, EnumDescriptorProto.Builder> {
private EnumDescriptorProto() { }
- private static readonly EnumDescriptorProto defaultInstance = new Builder().BuildPartial();
+ private static readonly EnumDescriptorProto defaultInstance = new EnumDescriptorProto().MakeReadOnly();
private static readonly string[] _enumDescriptorProtoFieldNames = new string[] { "name", "options", "value" };
private static readonly uint[] _enumDescriptorProtoFieldTags = new uint[] { 10, 26, 18 };
public static EnumDescriptorProto DefaultInstance {
@@ -2966,7 +2986,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override EnumDescriptorProto DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override EnumDescriptorProto ThisMessage {
@@ -3005,12 +3025,12 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public const int OptionsFieldNumber = 3;
private bool hasOptions;
- private global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.DefaultInstance;
+ private global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions options_;
public bool HasOptions {
get { return hasOptions; }
}
public global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions Options {
- get { return options_; }
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.DefaultInstance; }
}
public override bool IsInitialized {
@@ -3092,6 +3112,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static EnumDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private EnumDescriptorProto MakeReadOnly() {
+ value_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -3107,22 +3132,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new EnumDescriptorProto();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(EnumDescriptorProto cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- EnumDescriptorProto result;
+ private bool resultIsReadOnly;
+ private EnumDescriptorProto result;
private EnumDescriptorProto PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
EnumDescriptorProto original = result;
result = new EnumDescriptorProto();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -3137,13 +3162,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new EnumDescriptorProto();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -3159,12 +3184,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override EnumDescriptorProto BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.value_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -3359,7 +3383,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public Builder ClearOptions() {
PrepareBuilder();
result.hasOptions = false;
- result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.DefaultInstance;
+ result.options_ = null;
return this;
}
}
@@ -3373,7 +3397,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class EnumValueDescriptorProto : pb::GeneratedMessage<EnumValueDescriptorProto, EnumValueDescriptorProto.Builder> {
private EnumValueDescriptorProto() { }
- private static readonly EnumValueDescriptorProto defaultInstance = new Builder().BuildPartial();
+ private static readonly EnumValueDescriptorProto defaultInstance = new EnumValueDescriptorProto().MakeReadOnly();
private static readonly string[] _enumValueDescriptorProtoFieldNames = new string[] { "name", "number", "options" };
private static readonly uint[] _enumValueDescriptorProtoFieldTags = new uint[] { 10, 16, 26 };
public static EnumValueDescriptorProto DefaultInstance {
@@ -3381,7 +3405,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override EnumValueDescriptorProto DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override EnumValueDescriptorProto ThisMessage {
@@ -3418,12 +3442,12 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public const int OptionsFieldNumber = 3;
private bool hasOptions;
- private global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.DefaultInstance;
+ private global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions options_;
public bool HasOptions {
get { return hasOptions; }
}
public global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions Options {
- get { return options_; }
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.DefaultInstance; }
}
public override bool IsInitialized {
@@ -3502,6 +3526,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static EnumValueDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private EnumValueDescriptorProto MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -3517,22 +3545,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new EnumValueDescriptorProto();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(EnumValueDescriptorProto cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- EnumValueDescriptorProto result;
+ private bool resultIsReadOnly;
+ private EnumValueDescriptorProto result;
private EnumValueDescriptorProto PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
EnumValueDescriptorProto original = result;
result = new EnumValueDescriptorProto();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -3547,13 +3575,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new EnumValueDescriptorProto();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -3569,11 +3597,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override EnumValueDescriptorProto BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -3744,7 +3772,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public Builder ClearOptions() {
PrepareBuilder();
result.hasOptions = false;
- result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.DefaultInstance;
+ result.options_ = null;
return this;
}
}
@@ -3758,7 +3786,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ServiceDescriptorProto : pb::GeneratedMessage<ServiceDescriptorProto, ServiceDescriptorProto.Builder> {
private ServiceDescriptorProto() { }
- private static readonly ServiceDescriptorProto defaultInstance = new Builder().BuildPartial();
+ private static readonly ServiceDescriptorProto defaultInstance = new ServiceDescriptorProto().MakeReadOnly();
private static readonly string[] _serviceDescriptorProtoFieldNames = new string[] { "method", "name", "options" };
private static readonly uint[] _serviceDescriptorProtoFieldTags = new uint[] { 18, 10, 26 };
public static ServiceDescriptorProto DefaultInstance {
@@ -3766,7 +3794,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override ServiceDescriptorProto DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ServiceDescriptorProto ThisMessage {
@@ -3805,12 +3833,12 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public const int OptionsFieldNumber = 3;
private bool hasOptions;
- private global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.DefaultInstance;
+ private global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions options_;
public bool HasOptions {
get { return hasOptions; }
}
public global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions Options {
- get { return options_; }
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.DefaultInstance; }
}
public override bool IsInitialized {
@@ -3892,6 +3920,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static ServiceDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ServiceDescriptorProto MakeReadOnly() {
+ method_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -3907,22 +3940,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ServiceDescriptorProto();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ServiceDescriptorProto cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ServiceDescriptorProto result;
+ private bool resultIsReadOnly;
+ private ServiceDescriptorProto result;
private ServiceDescriptorProto PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ServiceDescriptorProto original = result;
result = new ServiceDescriptorProto();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -3937,13 +3970,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ServiceDescriptorProto();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -3959,12 +3992,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override ServiceDescriptorProto BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.method_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -4159,7 +4191,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public Builder ClearOptions() {
PrepareBuilder();
result.hasOptions = false;
- result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.DefaultInstance;
+ result.options_ = null;
return this;
}
}
@@ -4173,7 +4205,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class MethodDescriptorProto : pb::GeneratedMessage<MethodDescriptorProto, MethodDescriptorProto.Builder> {
private MethodDescriptorProto() { }
- private static readonly MethodDescriptorProto defaultInstance = new Builder().BuildPartial();
+ private static readonly MethodDescriptorProto defaultInstance = new MethodDescriptorProto().MakeReadOnly();
private static readonly string[] _methodDescriptorProtoFieldNames = new string[] { "input_type", "name", "options", "output_type" };
private static readonly uint[] _methodDescriptorProtoFieldTags = new uint[] { 18, 10, 34, 26 };
public static MethodDescriptorProto DefaultInstance {
@@ -4181,7 +4213,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override MethodDescriptorProto DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override MethodDescriptorProto ThisMessage {
@@ -4228,12 +4260,12 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public const int OptionsFieldNumber = 4;
private bool hasOptions;
- private global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions options_ = global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.DefaultInstance;
+ private global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions options_;
public bool HasOptions {
get { return hasOptions; }
}
public global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions Options {
- get { return options_; }
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.DefaultInstance; }
}
public override bool IsInitialized {
@@ -4318,6 +4350,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static MethodDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private MethodDescriptorProto MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -4333,22 +4369,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new MethodDescriptorProto();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(MethodDescriptorProto cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- MethodDescriptorProto result;
+ private bool resultIsReadOnly;
+ private MethodDescriptorProto result;
private MethodDescriptorProto PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
MethodDescriptorProto original = result;
result = new MethodDescriptorProto();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -4363,13 +4399,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new MethodDescriptorProto();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -4385,11 +4421,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override MethodDescriptorProto BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -4589,7 +4625,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public Builder ClearOptions() {
PrepareBuilder();
result.hasOptions = false;
- result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.DefaultInstance;
+ result.options_ = null;
return this;
}
}
@@ -4603,7 +4639,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class FileOptions : pb::ExtendableMessage<FileOptions, FileOptions.Builder> {
private FileOptions() { }
- private static readonly FileOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly FileOptions defaultInstance = new FileOptions().MakeReadOnly();
private static readonly string[] _fileOptionsFieldNames = new string[] { "cc_generic_services", "java_generic_services", "java_multiple_files", "java_outer_classname", "java_package", "optimize_for", "py_generic_services", "uninterpreted_option" };
private static readonly uint[] _fileOptionsFieldTags = new uint[] { 128, 136, 80, 66, 10, 72, 144, 7994 };
public static FileOptions DefaultInstance {
@@ -4611,7 +4647,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override FileOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override FileOptions ThisMessage {
@@ -4834,6 +4870,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static FileOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private FileOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -4849,22 +4890,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new FileOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(FileOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- FileOptions result;
+ private bool resultIsReadOnly;
+ private FileOptions result;
private FileOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
FileOptions original = result;
result = new FileOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -4879,13 +4920,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new FileOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -4901,12 +4942,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override FileOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.uninterpretedOption_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -5235,7 +5275,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class MessageOptions : pb::ExtendableMessage<MessageOptions, MessageOptions.Builder> {
private MessageOptions() { }
- private static readonly MessageOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly MessageOptions defaultInstance = new MessageOptions().MakeReadOnly();
private static readonly string[] _messageOptionsFieldNames = new string[] { "message_set_wire_format", "no_standard_descriptor_accessor", "uninterpreted_option" };
private static readonly uint[] _messageOptionsFieldTags = new uint[] { 8, 16, 7994 };
public static MessageOptions DefaultInstance {
@@ -5243,7 +5283,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override MessageOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override MessageOptions ThisMessage {
@@ -5370,6 +5410,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static MessageOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private MessageOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -5385,22 +5430,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new MessageOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(MessageOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- MessageOptions result;
+ private bool resultIsReadOnly;
+ private MessageOptions result;
private MessageOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
MessageOptions original = result;
result = new MessageOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -5415,13 +5460,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new MessageOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -5437,12 +5482,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override MessageOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.uninterpretedOption_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -5626,7 +5670,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class FieldOptions : pb::ExtendableMessage<FieldOptions, FieldOptions.Builder> {
private FieldOptions() { }
- private static readonly FieldOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly FieldOptions defaultInstance = new FieldOptions().MakeReadOnly();
private static readonly string[] _fieldOptionsFieldNames = new string[] { "ctype", "deprecated", "experimental_map_key", "packed", "uninterpreted_option" };
private static readonly uint[] _fieldOptionsFieldTags = new uint[] { 8, 24, 74, 16, 7994 };
public static FieldOptions DefaultInstance {
@@ -5634,7 +5678,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override FieldOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override FieldOptions ThisMessage {
@@ -5809,6 +5853,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static FieldOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private FieldOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -5824,22 +5873,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new FieldOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(FieldOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- FieldOptions result;
+ private bool resultIsReadOnly;
+ private FieldOptions result;
private FieldOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
FieldOptions original = result;
result = new FieldOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -5854,13 +5903,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new FieldOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -5876,12 +5925,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override FieldOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.uninterpretedOption_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -6128,7 +6176,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class EnumOptions : pb::ExtendableMessage<EnumOptions, EnumOptions.Builder> {
private EnumOptions() { }
- private static readonly EnumOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly EnumOptions defaultInstance = new EnumOptions().MakeReadOnly();
private static readonly string[] _enumOptionsFieldNames = new string[] { "uninterpreted_option" };
private static readonly uint[] _enumOptionsFieldTags = new uint[] { 7994 };
public static EnumOptions DefaultInstance {
@@ -6136,7 +6184,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override EnumOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override EnumOptions ThisMessage {
@@ -6231,6 +6279,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static EnumOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private EnumOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6246,22 +6299,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new EnumOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(EnumOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- EnumOptions result;
+ private bool resultIsReadOnly;
+ private EnumOptions result;
private EnumOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
EnumOptions original = result;
result = new EnumOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6276,13 +6329,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new EnumOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6298,12 +6351,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override EnumOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.uninterpretedOption_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -6433,7 +6485,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class EnumValueOptions : pb::ExtendableMessage<EnumValueOptions, EnumValueOptions.Builder> {
private EnumValueOptions() { }
- private static readonly EnumValueOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly EnumValueOptions defaultInstance = new EnumValueOptions().MakeReadOnly();
private static readonly string[] _enumValueOptionsFieldNames = new string[] { "uninterpreted_option" };
private static readonly uint[] _enumValueOptionsFieldTags = new uint[] { 7994 };
public static EnumValueOptions DefaultInstance {
@@ -6441,7 +6493,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override EnumValueOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override EnumValueOptions ThisMessage {
@@ -6536,6 +6588,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static EnumValueOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private EnumValueOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6551,22 +6608,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new EnumValueOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(EnumValueOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- EnumValueOptions result;
+ private bool resultIsReadOnly;
+ private EnumValueOptions result;
private EnumValueOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
EnumValueOptions original = result;
result = new EnumValueOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6581,13 +6638,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new EnumValueOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6603,12 +6660,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override EnumValueOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.uninterpretedOption_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -6738,7 +6794,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ServiceOptions : pb::ExtendableMessage<ServiceOptions, ServiceOptions.Builder> {
private ServiceOptions() { }
- private static readonly ServiceOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly ServiceOptions defaultInstance = new ServiceOptions().MakeReadOnly();
private static readonly string[] _serviceOptionsFieldNames = new string[] { "uninterpreted_option" };
private static readonly uint[] _serviceOptionsFieldTags = new uint[] { 7994 };
public static ServiceOptions DefaultInstance {
@@ -6746,7 +6802,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override ServiceOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ServiceOptions ThisMessage {
@@ -6841,6 +6897,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static ServiceOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ServiceOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6856,22 +6917,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ServiceOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ServiceOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ServiceOptions result;
+ private bool resultIsReadOnly;
+ private ServiceOptions result;
private ServiceOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ServiceOptions original = result;
result = new ServiceOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6886,13 +6947,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ServiceOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6908,12 +6969,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override ServiceOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.uninterpretedOption_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -7043,7 +7103,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class MethodOptions : pb::ExtendableMessage<MethodOptions, MethodOptions.Builder> {
private MethodOptions() { }
- private static readonly MethodOptions defaultInstance = new Builder().BuildPartial();
+ private static readonly MethodOptions defaultInstance = new MethodOptions().MakeReadOnly();
private static readonly string[] _methodOptionsFieldNames = new string[] { "uninterpreted_option" };
private static readonly uint[] _methodOptionsFieldTags = new uint[] { 7994 };
public static MethodOptions DefaultInstance {
@@ -7051,7 +7111,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override MethodOptions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override MethodOptions ThisMessage {
@@ -7146,6 +7206,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static MethodOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private MethodOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -7161,22 +7226,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new MethodOptions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(MethodOptions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- MethodOptions result;
+ private bool resultIsReadOnly;
+ private MethodOptions result;
private MethodOptions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
MethodOptions original = result;
result = new MethodOptions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -7191,13 +7256,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new MethodOptions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -7213,12 +7278,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override MethodOptions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.uninterpretedOption_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -7348,7 +7412,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class UninterpretedOption : pb::GeneratedMessage<UninterpretedOption, UninterpretedOption.Builder> {
private UninterpretedOption() { }
- private static readonly UninterpretedOption defaultInstance = new Builder().BuildPartial();
+ private static readonly UninterpretedOption defaultInstance = new UninterpretedOption().MakeReadOnly();
private static readonly string[] _uninterpretedOptionFieldNames = new string[] { "double_value", "identifier_value", "name", "negative_int_value", "positive_int_value", "string_value" };
private static readonly uint[] _uninterpretedOptionFieldTags = new uint[] { 49, 26, 18, 40, 32, 58 };
public static UninterpretedOption DefaultInstance {
@@ -7356,7 +7420,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override UninterpretedOption DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override UninterpretedOption ThisMessage {
@@ -7381,7 +7445,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class NamePart : pb::GeneratedMessage<NamePart, NamePart.Builder> {
private NamePart() { }
- private static readonly NamePart defaultInstance = new Builder().BuildPartial();
+ private static readonly NamePart defaultInstance = new NamePart().MakeReadOnly();
private static readonly string[] _namePartFieldNames = new string[] { "is_extension", "name_part" };
private static readonly uint[] _namePartFieldTags = new uint[] { 16, 10 };
public static NamePart DefaultInstance {
@@ -7389,7 +7453,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override NamePart DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override NamePart ThisMessage {
@@ -7493,6 +7557,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static NamePart ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private NamePart MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -7508,22 +7576,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new NamePart();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(NamePart cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- NamePart result;
+ private bool resultIsReadOnly;
+ private NamePart result;
private NamePart PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
NamePart original = result;
result = new NamePart();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -7538,13 +7606,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new NamePart();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -7560,11 +7628,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override NamePart BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -7852,6 +7920,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public static UninterpretedOption ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private UninterpretedOption MakeReadOnly() {
+ name_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -7867,22 +7940,22 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new UninterpretedOption();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(UninterpretedOption cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- UninterpretedOption result;
+ private bool resultIsReadOnly;
+ private UninterpretedOption result;
private UninterpretedOption PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
UninterpretedOption original = result;
result = new UninterpretedOption();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -7897,13 +7970,13 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new UninterpretedOption();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -7919,12 +7992,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public override UninterpretedOption BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.name_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs
index 260e6397..ba46dc6a 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs
@@ -129,13 +129,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestInteropPerson : pb::ExtendableMessage<TestInteropPerson, TestInteropPerson.Builder> {
private TestInteropPerson() { }
- private static readonly TestInteropPerson defaultInstance = new Builder().BuildPartial();
+ private static readonly TestInteropPerson defaultInstance = new TestInteropPerson().MakeReadOnly();
public static TestInteropPerson DefaultInstance {
get { return defaultInstance; }
}
public override TestInteropPerson DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestInteropPerson ThisMessage {
@@ -168,13 +168,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class PhoneNumber : pb::GeneratedMessage<PhoneNumber, PhoneNumber.Builder> {
private PhoneNumber() { }
- private static readonly PhoneNumber defaultInstance = new Builder().BuildPartial();
+ private static readonly PhoneNumber defaultInstance = new PhoneNumber().MakeReadOnly();
public static PhoneNumber DefaultInstance {
get { return defaultInstance; }
}
public override PhoneNumber DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override PhoneNumber ThisMessage {
@@ -239,6 +239,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static PhoneNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private PhoneNumber MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -254,22 +258,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new PhoneNumber();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(PhoneNumber cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- PhoneNumber result;
+ private bool resultIsReadOnly;
+ private PhoneNumber result;
private PhoneNumber PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
PhoneNumber original = result;
result = new PhoneNumber();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -284,13 +288,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new PhoneNumber();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -306,11 +310,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override PhoneNumber BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -365,13 +369,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Addresses : pb::GeneratedMessage<Addresses, Addresses.Builder> {
private Addresses() { }
- private static readonly Addresses defaultInstance = new Builder().BuildPartial();
+ private static readonly Addresses defaultInstance = new Addresses().MakeReadOnly();
public static Addresses DefaultInstance {
get { return defaultInstance; }
}
public override Addresses DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override Addresses ThisMessage {
@@ -467,6 +471,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static Addresses ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private Addresses MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -482,22 +490,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new Addresses();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(Addresses cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- Addresses result;
+ private bool resultIsReadOnly;
+ private Addresses result;
private Addresses PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
Addresses original = result;
result = new Addresses();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -512,13 +520,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new Addresses();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -534,11 +542,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Addresses BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -752,6 +760,13 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestInteropPerson ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestInteropPerson MakeReadOnly() {
+ codes_.MakeReadOnly();
+ phone_.MakeReadOnly();
+ addresses_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -767,22 +782,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestInteropPerson();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestInteropPerson cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestInteropPerson result;
+ private bool resultIsReadOnly;
+ private TestInteropPerson result;
private TestInteropPerson PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestInteropPerson original = result;
result = new TestInteropPerson();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -797,13 +812,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestInteropPerson();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -819,14 +834,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestInteropPerson BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.codes_.MakeReadOnly();
- result.phone_.MakeReadOnly();
- result.addresses_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -1020,13 +1032,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestInteropEmployeeId : pb::GeneratedMessage<TestInteropEmployeeId, TestInteropEmployeeId.Builder> {
private TestInteropEmployeeId() { }
- private static readonly TestInteropEmployeeId defaultInstance = new Builder().BuildPartial();
+ private static readonly TestInteropEmployeeId defaultInstance = new TestInteropEmployeeId().MakeReadOnly();
public static TestInteropEmployeeId DefaultInstance {
get { return defaultInstance; }
}
public override TestInteropEmployeeId DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestInteropEmployeeId ThisMessage {
@@ -1081,6 +1093,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestInteropEmployeeId ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestInteropEmployeeId MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1096,22 +1112,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestInteropEmployeeId();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestInteropEmployeeId cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestInteropEmployeeId result;
+ private bool resultIsReadOnly;
+ private TestInteropEmployeeId result;
private TestInteropEmployeeId PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestInteropEmployeeId original = result;
result = new TestInteropEmployeeId();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1126,13 +1142,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestInteropEmployeeId();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1148,11 +1164,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestInteropEmployeeId BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -1187,13 +1203,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMissingFieldsA : pb::GeneratedMessage<TestMissingFieldsA, TestMissingFieldsA.Builder> {
private TestMissingFieldsA() { }
- private static readonly TestMissingFieldsA defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMissingFieldsA defaultInstance = new TestMissingFieldsA().MakeReadOnly();
public static TestMissingFieldsA DefaultInstance {
get { return defaultInstance; }
}
public override TestMissingFieldsA DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMissingFieldsA ThisMessage {
@@ -1218,13 +1234,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SubA : pb::GeneratedMessage<SubA, SubA.Builder> {
private SubA() { }
- private static readonly SubA defaultInstance = new Builder().BuildPartial();
+ private static readonly SubA defaultInstance = new SubA().MakeReadOnly();
public static SubA DefaultInstance {
get { return defaultInstance; }
}
public override SubA DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SubA ThisMessage {
@@ -1291,6 +1307,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SubA ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SubA MakeReadOnly() {
+ values_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1306,22 +1327,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SubA();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SubA cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SubA result;
+ private bool resultIsReadOnly;
+ private SubA result;
private SubA PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SubA original = result;
result = new SubA();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1336,13 +1357,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SubA();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1358,12 +1379,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SubA BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.values_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -1459,12 +1479,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int TestAFieldNumber = 11;
private bool hasTestA;
- private global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA testA_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA testA_;
public bool HasTestA {
get { return hasTestA; }
}
public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA TestA {
- get { return testA_; }
+ get { return testA_ ?? global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.DefaultInstance; }
}
public static TestMissingFieldsA ParseFrom(pb::ByteString data) {
@@ -1497,6 +1517,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMissingFieldsA ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMissingFieldsA MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1512,22 +1536,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMissingFieldsA();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMissingFieldsA cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMissingFieldsA result;
+ private bool resultIsReadOnly;
+ private TestMissingFieldsA result;
private TestMissingFieldsA PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMissingFieldsA original = result;
result = new TestMissingFieldsA();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1542,13 +1566,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMissingFieldsA();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1564,11 +1588,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMissingFieldsA BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -1670,7 +1694,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearTestA() {
PrepareBuilder();
result.hasTestA = false;
- result.testA_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.DefaultInstance;
+ result.testA_ = null;
return this;
}
}
@@ -1684,13 +1708,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMissingFieldsB : pb::GeneratedMessage<TestMissingFieldsB, TestMissingFieldsB.Builder> {
private TestMissingFieldsB() { }
- private static readonly TestMissingFieldsB defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMissingFieldsB defaultInstance = new TestMissingFieldsB().MakeReadOnly();
public static TestMissingFieldsB DefaultInstance {
get { return defaultInstance; }
}
public override TestMissingFieldsB DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMissingFieldsB ThisMessage {
@@ -1715,13 +1739,13 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class SubB : pb::GeneratedMessage<SubB, SubB.Builder> {
private SubB() { }
- private static readonly SubB defaultInstance = new Builder().BuildPartial();
+ private static readonly SubB defaultInstance = new SubB().MakeReadOnly();
public static SubB DefaultInstance {
get { return defaultInstance; }
}
public override SubB DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override SubB ThisMessage {
@@ -1778,6 +1802,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static SubB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private SubB MakeReadOnly() {
+ values_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1793,22 +1822,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new SubB();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(SubB cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- SubB result;
+ private bool resultIsReadOnly;
+ private SubB result;
private SubB PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
SubB original = result;
result = new SubB();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1823,13 +1852,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new SubB();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1845,12 +1874,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override SubB BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.values_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -1926,12 +1954,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int TestBFieldNumber = 12;
private bool hasTestB;
- private global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB testB_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB testB_;
public bool HasTestB {
get { return hasTestB; }
}
public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB TestB {
- get { return testB_; }
+ get { return testB_ ?? global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.DefaultInstance; }
}
public static TestMissingFieldsB ParseFrom(pb::ByteString data) {
@@ -1964,6 +1992,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMissingFieldsB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMissingFieldsB MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1979,22 +2011,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMissingFieldsB();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMissingFieldsB cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMissingFieldsB result;
+ private bool resultIsReadOnly;
+ private TestMissingFieldsB result;
private TestMissingFieldsB PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMissingFieldsB original = result;
result = new TestMissingFieldsB();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -2009,13 +2041,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMissingFieldsB();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -2031,11 +2063,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMissingFieldsB BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
@@ -2137,7 +2169,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearTestB() {
PrepareBuilder();
result.hasTestB = false;
- result.testB_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.DefaultInstance;
+ result.testB_ = null;
return this;
}
}
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs
index 550bc012..e3df2328 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs
@@ -61,7 +61,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestRequiredLite : pb::GeneratedMessageLite<TestRequiredLite, TestRequiredLite.Builder> {
private TestRequiredLite() { }
- private static readonly TestRequiredLite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestRequiredLite defaultInstance = new TestRequiredLite().MakeReadOnly();
private static readonly string[] _testRequiredLiteFieldNames = new string[] { "d", "en" };
private static readonly uint[] _testRequiredLiteFieldTags = new uint[] { 8, 16 };
public static TestRequiredLite DefaultInstance {
@@ -69,7 +69,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRequiredLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestRequiredLite ThisMessage {
@@ -185,6 +185,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestRequiredLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestRequiredLite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -201,22 +205,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestRequiredLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestRequiredLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestRequiredLite result;
+ private bool resultIsReadOnly;
+ private TestRequiredLite result;
private TestRequiredLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestRequiredLite original = result;
result = new TestRequiredLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -231,13 +235,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestRequiredLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -249,11 +253,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRequiredLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -376,7 +380,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestInteropPersonLite : pb::ExtendableMessageLite<TestInteropPersonLite, TestInteropPersonLite.Builder> {
private TestInteropPersonLite() { }
- private static readonly TestInteropPersonLite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestInteropPersonLite defaultInstance = new TestInteropPersonLite().MakeReadOnly();
private static readonly string[] _testInteropPersonLiteFieldNames = new string[] { "addresses", "codes", "email", "id", "name", "phone" };
private static readonly uint[] _testInteropPersonLiteFieldTags = new uint[] { 43, 82, 26, 16, 10, 34 };
public static TestInteropPersonLite DefaultInstance {
@@ -384,7 +388,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestInteropPersonLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestInteropPersonLite ThisMessage {
@@ -410,7 +414,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class PhoneNumber : pb::GeneratedMessageLite<PhoneNumber, PhoneNumber.Builder> {
private PhoneNumber() { }
- private static readonly PhoneNumber defaultInstance = new Builder().BuildPartial();
+ private static readonly PhoneNumber defaultInstance = new PhoneNumber().MakeReadOnly();
private static readonly string[] _phoneNumberFieldNames = new string[] { "number", "type" };
private static readonly uint[] _phoneNumberFieldTags = new uint[] { 10, 16 };
public static PhoneNumber DefaultInstance {
@@ -418,7 +422,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override PhoneNumber DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override PhoneNumber ThisMessage {
@@ -533,6 +537,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static PhoneNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private PhoneNumber MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -549,22 +557,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new PhoneNumber();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(PhoneNumber cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- PhoneNumber result;
+ private bool resultIsReadOnly;
+ private PhoneNumber result;
private PhoneNumber PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
PhoneNumber original = result;
result = new PhoneNumber();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -579,13 +587,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new PhoneNumber();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -597,11 +605,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override PhoneNumber BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -725,7 +733,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Addresses : pb::GeneratedMessageLite<Addresses, Addresses.Builder> {
private Addresses() { }
- private static readonly Addresses defaultInstance = new Builder().BuildPartial();
+ private static readonly Addresses defaultInstance = new Addresses().MakeReadOnly();
private static readonly string[] _addressesFieldNames = new string[] { "address", "address2", "city", "state", "zip" };
private static readonly uint[] _addressesFieldTags = new uint[] { 10, 18, 26, 34, 45 };
public static Addresses DefaultInstance {
@@ -733,7 +741,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Addresses DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override Addresses ThisMessage {
@@ -909,6 +917,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static Addresses ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private Addresses MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -925,22 +937,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new Addresses();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(Addresses cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- Addresses result;
+ private bool resultIsReadOnly;
+ private Addresses result;
private Addresses PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
Addresses original = result;
result = new Addresses();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -955,13 +967,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new Addresses();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -973,11 +985,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Addresses BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -1399,6 +1411,13 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestInteropPersonLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestInteropPersonLite MakeReadOnly() {
+ codes_.MakeReadOnly();
+ phone_.MakeReadOnly();
+ addresses_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1415,22 +1434,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestInteropPersonLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestInteropPersonLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestInteropPersonLite result;
+ private bool resultIsReadOnly;
+ private TestInteropPersonLite result;
private TestInteropPersonLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestInteropPersonLite original = result;
result = new TestInteropPersonLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1445,13 +1464,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestInteropPersonLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1463,14 +1482,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestInteropPersonLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.codes_.MakeReadOnly();
- result.phone_.MakeReadOnly();
- result.addresses_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -1759,7 +1775,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestInteropEmployeeIdLite : pb::GeneratedMessageLite<TestInteropEmployeeIdLite, TestInteropEmployeeIdLite.Builder> {
private TestInteropEmployeeIdLite() { }
- private static readonly TestInteropEmployeeIdLite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestInteropEmployeeIdLite defaultInstance = new TestInteropEmployeeIdLite().MakeReadOnly();
private static readonly string[] _testInteropEmployeeIdLiteFieldNames = new string[] { "number" };
private static readonly uint[] _testInteropEmployeeIdLiteFieldTags = new uint[] { 10 };
public static TestInteropEmployeeIdLite DefaultInstance {
@@ -1767,7 +1783,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestInteropEmployeeIdLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestInteropEmployeeIdLite ThisMessage {
@@ -1863,6 +1879,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestInteropEmployeeIdLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestInteropEmployeeIdLite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1879,22 +1899,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestInteropEmployeeIdLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestInteropEmployeeIdLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestInteropEmployeeIdLite result;
+ private bool resultIsReadOnly;
+ private TestInteropEmployeeIdLite result;
private TestInteropEmployeeIdLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestInteropEmployeeIdLite original = result;
result = new TestInteropEmployeeIdLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1909,13 +1929,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestInteropEmployeeIdLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1927,11 +1947,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestInteropEmployeeIdLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs
index 98672cf2..f31fdd89 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs
@@ -44,7 +44,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ImportMessageLite : pb::GeneratedMessageLite<ImportMessageLite, ImportMessageLite.Builder> {
private ImportMessageLite() { }
- private static readonly ImportMessageLite defaultInstance = new Builder().BuildPartial();
+ private static readonly ImportMessageLite defaultInstance = new ImportMessageLite().MakeReadOnly();
private static readonly string[] _importMessageLiteFieldNames = new string[] { "d" };
private static readonly uint[] _importMessageLiteFieldTags = new uint[] { 8 };
public static ImportMessageLite DefaultInstance {
@@ -52,7 +52,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ImportMessageLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ImportMessageLite ThisMessage {
@@ -147,6 +147,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ImportMessageLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ImportMessageLite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -162,22 +166,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ImportMessageLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ImportMessageLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ImportMessageLite result;
+ private bool resultIsReadOnly;
+ private ImportMessageLite result;
private ImportMessageLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ImportMessageLite original = result;
result = new ImportMessageLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -192,13 +196,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ImportMessageLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -210,11 +214,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ImportMessageLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs
index 086dda1d..c12aef8e 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs
@@ -72,7 +72,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ImportMessage : pb::GeneratedMessage<ImportMessage, ImportMessage.Builder> {
private ImportMessage() { }
- private static readonly ImportMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly ImportMessage defaultInstance = new ImportMessage().MakeReadOnly();
private static readonly string[] _importMessageFieldNames = new string[] { "d" };
private static readonly uint[] _importMessageFieldTags = new uint[] { 8 };
public static ImportMessage DefaultInstance {
@@ -80,7 +80,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ImportMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ImportMessage ThisMessage {
@@ -166,6 +166,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ImportMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ImportMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -181,22 +185,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ImportMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ImportMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ImportMessage result;
+ private bool resultIsReadOnly;
+ private ImportMessage result;
private ImportMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ImportMessage original = result;
result = new ImportMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -211,13 +215,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ImportMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -233,11 +237,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ImportMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs
index 2b059eb2..0e7b5070 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs
@@ -33,7 +33,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestLiteImportsNonlite : pb::GeneratedMessageLite<TestLiteImportsNonlite, TestLiteImportsNonlite.Builder> {
private TestLiteImportsNonlite() { }
- private static readonly TestLiteImportsNonlite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestLiteImportsNonlite defaultInstance = new TestLiteImportsNonlite().MakeReadOnly();
private static readonly string[] _testLiteImportsNonliteFieldNames = new string[] { "message" };
private static readonly uint[] _testLiteImportsNonliteFieldTags = new uint[] { 10 };
public static TestLiteImportsNonlite DefaultInstance {
@@ -41,7 +41,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestLiteImportsNonlite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestLiteImportsNonlite ThisMessage {
@@ -50,12 +50,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int MessageFieldNumber = 1;
private bool hasMessage;
- private global::Google.ProtocolBuffers.TestProtos.TestAllTypes message_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes message_;
public bool HasMessage {
get { return hasMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Message {
- get { return message_; }
+ get { return message_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
}
public override bool IsInitialized {
@@ -136,6 +136,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestLiteImportsNonlite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestLiteImportsNonlite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -151,22 +155,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestLiteImportsNonlite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestLiteImportsNonlite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestLiteImportsNonlite result;
+ private bool resultIsReadOnly;
+ private TestLiteImportsNonlite result;
private TestLiteImportsNonlite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestLiteImportsNonlite original = result;
result = new TestLiteImportsNonlite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -181,13 +185,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestLiteImportsNonlite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -199,11 +203,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestLiteImportsNonlite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -305,7 +309,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearMessage() {
PrepareBuilder();
result.hasMessage = false;
- result.message_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance;
+ result.message_ = null;
return this;
}
}
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs
index 90c792b3..c682ad1c 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs
@@ -1229,7 +1229,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestAllTypesLite : pb::GeneratedMessageLite<TestAllTypesLite, TestAllTypesLite.Builder> {
private TestAllTypesLite() { }
- private static readonly TestAllTypesLite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestAllTypesLite defaultInstance = new TestAllTypesLite().MakeReadOnly();
private static readonly string[] _testAllTypesLiteFieldNames = new string[] { "default_bool", "default_bytes", "default_cord", "default_double", "default_fixed32", "default_fixed64", "default_float", "default_foreign_enum", "default_import_enum", "default_int32", "default_int64", "default_nested_enum", "default_sfixed32", "default_sfixed64", "default_sint32", "default_sint64", "default_string", "default_string_piece", "default_uint32", "default_uint64", "optional_bool", "optional_bytes", "optional_cord", "optional_double", "optional_fixed32", "optional_fixed64", "optional_float", "optional_foreign_enum", "optional_foreign_message", "optional_import_enum", "optional_import_message", "optional_int32", "optional_int64", "optional_nested_enum", "optional_nested_message", "optional_sfixed32", "optional_sfixed64", "optional_sint32", "optional_sint64", "optional_string", "optional_string_piece", "optional_uint32", "optional_uint64", "optionalgroup", "repeated_bool", "repeated_bytes", "repeated_cord", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_nested_enum", "repeated_nested_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_string_piece", "repeated_uint32", "repeated_uint64", "repeatedgroup" };
private static readonly uint[] _testAllTypesLiteFieldTags = new uint[] { 584, 602, 682, 577, 541, 545, 573, 656, 664, 488, 496, 648, 557, 561, 520, 528, 594, 674, 504, 512, 104, 122, 202, 97, 61, 65, 93, 176, 154, 184, 162, 8, 16, 168, 146, 77, 81, 40, 48, 114, 194, 24, 32, 131, 344, 362, 442, 337, 301, 305, 333, 416, 394, 424, 402, 248, 256, 408, 386, 317, 321, 280, 288, 354, 434, 264, 272, 371 };
public static TestAllTypesLite DefaultInstance {
@@ -1237,7 +1237,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllTypesLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestAllTypesLite ThisMessage {
@@ -1262,7 +1262,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class NestedMessage : pb::GeneratedMessageLite<NestedMessage, NestedMessage.Builder> {
private NestedMessage() { }
- private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
private static readonly string[] _nestedMessageFieldNames = new string[] { "bb" };
private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8 };
public static NestedMessage DefaultInstance {
@@ -1270,7 +1270,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override NestedMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override NestedMessage ThisMessage {
@@ -1365,6 +1365,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1380,22 +1384,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new NestedMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(NestedMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- NestedMessage result;
+ private bool resultIsReadOnly;
+ private NestedMessage result;
private NestedMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
NestedMessage original = result;
result = new NestedMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1410,13 +1414,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new NestedMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1428,11 +1432,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override NestedMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -1523,7 +1527,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OptionalGroup : pb::GeneratedMessageLite<OptionalGroup, OptionalGroup.Builder> {
private OptionalGroup() { }
- private static readonly OptionalGroup defaultInstance = new Builder().BuildPartial();
+ private static readonly OptionalGroup defaultInstance = new OptionalGroup().MakeReadOnly();
private static readonly string[] _optionalGroupFieldNames = new string[] { "a" };
private static readonly uint[] _optionalGroupFieldTags = new uint[] { 136 };
public static OptionalGroup DefaultInstance {
@@ -1531,7 +1535,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override OptionalGroup ThisMessage {
@@ -1626,6 +1630,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static OptionalGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private OptionalGroup MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1641,22 +1649,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new OptionalGroup();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(OptionalGroup cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- OptionalGroup result;
+ private bool resultIsReadOnly;
+ private OptionalGroup result;
private OptionalGroup PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
OptionalGroup original = result;
result = new OptionalGroup();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1671,13 +1679,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new OptionalGroup();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1689,11 +1697,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -1784,7 +1792,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class RepeatedGroup : pb::GeneratedMessageLite<RepeatedGroup, RepeatedGroup.Builder> {
private RepeatedGroup() { }
- private static readonly RepeatedGroup defaultInstance = new Builder().BuildPartial();
+ private static readonly RepeatedGroup defaultInstance = new RepeatedGroup().MakeReadOnly();
private static readonly string[] _repeatedGroupFieldNames = new string[] { "a" };
private static readonly uint[] _repeatedGroupFieldTags = new uint[] { 376 };
public static RepeatedGroup DefaultInstance {
@@ -1792,7 +1800,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override RepeatedGroup ThisMessage {
@@ -1887,6 +1895,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static RepeatedGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private RepeatedGroup MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1902,22 +1914,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new RepeatedGroup();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(RepeatedGroup cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- RepeatedGroup result;
+ private bool resultIsReadOnly;
+ private RepeatedGroup result;
private RepeatedGroup PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
RepeatedGroup original = result;
result = new RepeatedGroup();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1932,13 +1944,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new RepeatedGroup();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1950,11 +1962,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -2199,42 +2211,42 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int OptionalGroupFieldNumber = 16;
private bool hasOptionalGroup;
- private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup optionalGroup_;
public bool HasOptionalGroup {
get { return hasOptionalGroup; }
}
public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup OptionalGroup {
- get { return optionalGroup_; }
+ get { return optionalGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance; }
}
public const int OptionalNestedMessageFieldNumber = 18;
private bool hasOptionalNestedMessage;
- private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage optionalNestedMessage_;
public bool HasOptionalNestedMessage {
get { return hasOptionalNestedMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage OptionalNestedMessage {
- get { return optionalNestedMessage_; }
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance; }
}
public const int OptionalForeignMessageFieldNumber = 19;
private bool hasOptionalForeignMessage;
- private global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite optionalForeignMessage_;
public bool HasOptionalForeignMessage {
get { return hasOptionalForeignMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite OptionalForeignMessage {
- get { return optionalForeignMessage_; }
+ get { return optionalForeignMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance; }
}
public const int OptionalImportMessageFieldNumber = 20;
private bool hasOptionalImportMessage;
- private global::Google.ProtocolBuffers.TestProtos.ImportMessageLite optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ImportMessageLite optionalImportMessage_;
public bool HasOptionalImportMessage {
get { return hasOptionalImportMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.ImportMessageLite OptionalImportMessage {
- get { return optionalImportMessage_; }
+ get { return optionalImportMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance; }
}
public const int OptionalNestedEnumFieldNumber = 21;
@@ -3632,6 +3644,34 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestAllTypesLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestAllTypesLite MakeReadOnly() {
+ repeatedInt32_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedUint32_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ repeatedSint32_.MakeReadOnly();
+ repeatedSint64_.MakeReadOnly();
+ repeatedFixed32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedSfixed32_.MakeReadOnly();
+ repeatedSfixed64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedDouble_.MakeReadOnly();
+ repeatedBool_.MakeReadOnly();
+ repeatedString_.MakeReadOnly();
+ repeatedBytes_.MakeReadOnly();
+ repeatedGroup_.MakeReadOnly();
+ repeatedNestedMessage_.MakeReadOnly();
+ repeatedForeignMessage_.MakeReadOnly();
+ repeatedImportMessage_.MakeReadOnly();
+ repeatedNestedEnum_.MakeReadOnly();
+ repeatedForeignEnum_.MakeReadOnly();
+ repeatedImportEnum_.MakeReadOnly();
+ repeatedStringPiece_.MakeReadOnly();
+ repeatedCord_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -3647,22 +3687,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestAllTypesLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestAllTypesLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestAllTypesLite result;
+ private bool resultIsReadOnly;
+ private TestAllTypesLite result;
private TestAllTypesLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestAllTypesLite original = result;
result = new TestAllTypesLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -3677,13 +3717,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestAllTypesLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -3695,35 +3735,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllTypesLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedInt32_.MakeReadOnly();
- result.repeatedInt64_.MakeReadOnly();
- result.repeatedUint32_.MakeReadOnly();
- result.repeatedUint64_.MakeReadOnly();
- result.repeatedSint32_.MakeReadOnly();
- result.repeatedSint64_.MakeReadOnly();
- result.repeatedFixed32_.MakeReadOnly();
- result.repeatedFixed64_.MakeReadOnly();
- result.repeatedSfixed32_.MakeReadOnly();
- result.repeatedSfixed64_.MakeReadOnly();
- result.repeatedFloat_.MakeReadOnly();
- result.repeatedDouble_.MakeReadOnly();
- result.repeatedBool_.MakeReadOnly();
- result.repeatedString_.MakeReadOnly();
- result.repeatedBytes_.MakeReadOnly();
- result.repeatedGroup_.MakeReadOnly();
- result.repeatedNestedMessage_.MakeReadOnly();
- result.repeatedForeignMessage_.MakeReadOnly();
- result.repeatedImportMessage_.MakeReadOnly();
- result.repeatedNestedEnum_.MakeReadOnly();
- result.repeatedForeignEnum_.MakeReadOnly();
- result.repeatedImportEnum_.MakeReadOnly();
- result.repeatedStringPiece_.MakeReadOnly();
- result.repeatedCord_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -4662,7 +4678,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalGroup() {
PrepareBuilder();
result.hasOptionalGroup = false;
- result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance;
+ result.optionalGroup_ = null;
return this;
}
@@ -4702,7 +4718,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalNestedMessage() {
PrepareBuilder();
result.hasOptionalNestedMessage = false;
- result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance;
+ result.optionalNestedMessage_ = null;
return this;
}
@@ -4742,7 +4758,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalForeignMessage() {
PrepareBuilder();
result.hasOptionalForeignMessage = false;
- result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance;
+ result.optionalForeignMessage_ = null;
return this;
}
@@ -4782,7 +4798,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalImportMessage() {
PrepareBuilder();
result.hasOptionalImportMessage = false;
- result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance;
+ result.optionalImportMessage_ = null;
return this;
}
@@ -6114,7 +6130,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ForeignMessageLite : pb::GeneratedMessageLite<ForeignMessageLite, ForeignMessageLite.Builder> {
private ForeignMessageLite() { }
- private static readonly ForeignMessageLite defaultInstance = new Builder().BuildPartial();
+ private static readonly ForeignMessageLite defaultInstance = new ForeignMessageLite().MakeReadOnly();
private static readonly string[] _foreignMessageLiteFieldNames = new string[] { "c" };
private static readonly uint[] _foreignMessageLiteFieldTags = new uint[] { 8 };
public static ForeignMessageLite DefaultInstance {
@@ -6122,7 +6138,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ForeignMessageLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ForeignMessageLite ThisMessage {
@@ -6217,6 +6233,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ForeignMessageLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ForeignMessageLite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6232,22 +6252,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ForeignMessageLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ForeignMessageLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ForeignMessageLite result;
+ private bool resultIsReadOnly;
+ private ForeignMessageLite result;
private ForeignMessageLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ForeignMessageLite original = result;
result = new ForeignMessageLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6262,13 +6282,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ForeignMessageLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6280,11 +6300,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ForeignMessageLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -6375,7 +6395,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestPackedTypesLite : pb::GeneratedMessageLite<TestPackedTypesLite, TestPackedTypesLite.Builder> {
private TestPackedTypesLite() { }
- private static readonly TestPackedTypesLite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestPackedTypesLite defaultInstance = new TestPackedTypesLite().MakeReadOnly();
private static readonly string[] _testPackedTypesLiteFieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };
private static readonly uint[] _testPackedTypesLiteFieldTags = new uint[] { 818, 810, 826, 770, 778, 802, 722, 730, 786, 794, 754, 762, 738, 746 };
public static TestPackedTypesLite DefaultInstance {
@@ -6383,7 +6403,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedTypesLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestPackedTypesLite ThisMessage {
@@ -6916,6 +6936,24 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestPackedTypesLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestPackedTypesLite MakeReadOnly() {
+ packedInt32_.MakeReadOnly();
+ packedInt64_.MakeReadOnly();
+ packedUint32_.MakeReadOnly();
+ packedUint64_.MakeReadOnly();
+ packedSint32_.MakeReadOnly();
+ packedSint64_.MakeReadOnly();
+ packedFixed32_.MakeReadOnly();
+ packedFixed64_.MakeReadOnly();
+ packedSfixed32_.MakeReadOnly();
+ packedSfixed64_.MakeReadOnly();
+ packedFloat_.MakeReadOnly();
+ packedDouble_.MakeReadOnly();
+ packedBool_.MakeReadOnly();
+ packedEnum_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6931,22 +6969,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestPackedTypesLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestPackedTypesLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestPackedTypesLite result;
+ private bool resultIsReadOnly;
+ private TestPackedTypesLite result;
private TestPackedTypesLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestPackedTypesLite original = result;
result = new TestPackedTypesLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6961,13 +6999,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestPackedTypesLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6979,25 +7017,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedTypesLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.packedInt32_.MakeReadOnly();
- result.packedInt64_.MakeReadOnly();
- result.packedUint32_.MakeReadOnly();
- result.packedUint64_.MakeReadOnly();
- result.packedSint32_.MakeReadOnly();
- result.packedSint64_.MakeReadOnly();
- result.packedFixed32_.MakeReadOnly();
- result.packedFixed64_.MakeReadOnly();
- result.packedSfixed32_.MakeReadOnly();
- result.packedSfixed64_.MakeReadOnly();
- result.packedFloat_.MakeReadOnly();
- result.packedDouble_.MakeReadOnly();
- result.packedBool_.MakeReadOnly();
- result.packedEnum_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -7614,7 +7638,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestUnpackedTypesLite : pb::GeneratedMessageLite<TestUnpackedTypesLite, TestUnpackedTypesLite.Builder> {
private TestUnpackedTypesLite() { }
- private static readonly TestUnpackedTypesLite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestUnpackedTypesLite defaultInstance = new TestUnpackedTypesLite().MakeReadOnly();
private static readonly string[] _testUnpackedTypesLiteFieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };
private static readonly uint[] _testUnpackedTypesLiteFieldTags = new uint[] { 816, 809, 824, 773, 777, 805, 720, 728, 789, 793, 752, 760, 736, 744 };
public static TestUnpackedTypesLite DefaultInstance {
@@ -7622,7 +7646,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedTypesLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestUnpackedTypesLite ThisMessage {
@@ -8100,6 +8124,24 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestUnpackedTypesLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestUnpackedTypesLite MakeReadOnly() {
+ unpackedInt32_.MakeReadOnly();
+ unpackedInt64_.MakeReadOnly();
+ unpackedUint32_.MakeReadOnly();
+ unpackedUint64_.MakeReadOnly();
+ unpackedSint32_.MakeReadOnly();
+ unpackedSint64_.MakeReadOnly();
+ unpackedFixed32_.MakeReadOnly();
+ unpackedFixed64_.MakeReadOnly();
+ unpackedSfixed32_.MakeReadOnly();
+ unpackedSfixed64_.MakeReadOnly();
+ unpackedFloat_.MakeReadOnly();
+ unpackedDouble_.MakeReadOnly();
+ unpackedBool_.MakeReadOnly();
+ unpackedEnum_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -8115,22 +8157,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestUnpackedTypesLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestUnpackedTypesLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestUnpackedTypesLite result;
+ private bool resultIsReadOnly;
+ private TestUnpackedTypesLite result;
private TestUnpackedTypesLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestUnpackedTypesLite original = result;
result = new TestUnpackedTypesLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -8145,13 +8187,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestUnpackedTypesLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -8163,25 +8205,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedTypesLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.unpackedInt32_.MakeReadOnly();
- result.unpackedInt64_.MakeReadOnly();
- result.unpackedUint32_.MakeReadOnly();
- result.unpackedUint64_.MakeReadOnly();
- result.unpackedSint32_.MakeReadOnly();
- result.unpackedSint64_.MakeReadOnly();
- result.unpackedFixed32_.MakeReadOnly();
- result.unpackedFixed64_.MakeReadOnly();
- result.unpackedSfixed32_.MakeReadOnly();
- result.unpackedSfixed64_.MakeReadOnly();
- result.unpackedFloat_.MakeReadOnly();
- result.unpackedDouble_.MakeReadOnly();
- result.unpackedBool_.MakeReadOnly();
- result.unpackedEnum_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -8798,7 +8826,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestAllExtensionsLite : pb::ExtendableMessageLite<TestAllExtensionsLite, TestAllExtensionsLite.Builder> {
private TestAllExtensionsLite() { }
- private static readonly TestAllExtensionsLite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestAllExtensionsLite defaultInstance = new TestAllExtensionsLite().MakeReadOnly();
private static readonly string[] _testAllExtensionsLiteFieldNames = new string[] { };
private static readonly uint[] _testAllExtensionsLiteFieldTags = new uint[] { };
public static TestAllExtensionsLite DefaultInstance {
@@ -8806,7 +8834,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllExtensionsLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestAllExtensionsLite ThisMessage {
@@ -8889,6 +8917,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestAllExtensionsLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestAllExtensionsLite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -8904,22 +8936,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestAllExtensionsLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestAllExtensionsLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestAllExtensionsLite result;
+ private bool resultIsReadOnly;
+ private TestAllExtensionsLite result;
private TestAllExtensionsLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestAllExtensionsLite original = result;
result = new TestAllExtensionsLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -8934,13 +8966,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestAllExtensionsLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -8952,11 +8984,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllExtensionsLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -9021,7 +9053,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OptionalGroup_extension_lite : pb::GeneratedMessageLite<OptionalGroup_extension_lite, OptionalGroup_extension_lite.Builder> {
private OptionalGroup_extension_lite() { }
- private static readonly OptionalGroup_extension_lite defaultInstance = new Builder().BuildPartial();
+ private static readonly OptionalGroup_extension_lite defaultInstance = new OptionalGroup_extension_lite().MakeReadOnly();
private static readonly string[] _optionalGroupExtensionLiteFieldNames = new string[] { "a" };
private static readonly uint[] _optionalGroupExtensionLiteFieldTags = new uint[] { 136 };
public static OptionalGroup_extension_lite DefaultInstance {
@@ -9029,7 +9061,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup_extension_lite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override OptionalGroup_extension_lite ThisMessage {
@@ -9124,6 +9156,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static OptionalGroup_extension_lite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private OptionalGroup_extension_lite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -9139,22 +9175,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new OptionalGroup_extension_lite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(OptionalGroup_extension_lite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- OptionalGroup_extension_lite result;
+ private bool resultIsReadOnly;
+ private OptionalGroup_extension_lite result;
private OptionalGroup_extension_lite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
OptionalGroup_extension_lite original = result;
result = new OptionalGroup_extension_lite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -9169,13 +9205,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new OptionalGroup_extension_lite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -9187,11 +9223,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup_extension_lite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -9282,7 +9318,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class RepeatedGroup_extension_lite : pb::GeneratedMessageLite<RepeatedGroup_extension_lite, RepeatedGroup_extension_lite.Builder> {
private RepeatedGroup_extension_lite() { }
- private static readonly RepeatedGroup_extension_lite defaultInstance = new Builder().BuildPartial();
+ private static readonly RepeatedGroup_extension_lite defaultInstance = new RepeatedGroup_extension_lite().MakeReadOnly();
private static readonly string[] _repeatedGroupExtensionLiteFieldNames = new string[] { "a" };
private static readonly uint[] _repeatedGroupExtensionLiteFieldTags = new uint[] { 376 };
public static RepeatedGroup_extension_lite DefaultInstance {
@@ -9290,7 +9326,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup_extension_lite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override RepeatedGroup_extension_lite ThisMessage {
@@ -9385,6 +9421,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static RepeatedGroup_extension_lite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private RepeatedGroup_extension_lite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -9400,22 +9440,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new RepeatedGroup_extension_lite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(RepeatedGroup_extension_lite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- RepeatedGroup_extension_lite result;
+ private bool resultIsReadOnly;
+ private RepeatedGroup_extension_lite result;
private RepeatedGroup_extension_lite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
RepeatedGroup_extension_lite original = result;
result = new RepeatedGroup_extension_lite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -9430,13 +9470,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new RepeatedGroup_extension_lite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -9448,11 +9488,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup_extension_lite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -9543,7 +9583,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestPackedExtensionsLite : pb::ExtendableMessageLite<TestPackedExtensionsLite, TestPackedExtensionsLite.Builder> {
private TestPackedExtensionsLite() { }
- private static readonly TestPackedExtensionsLite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestPackedExtensionsLite defaultInstance = new TestPackedExtensionsLite().MakeReadOnly();
private static readonly string[] _testPackedExtensionsLiteFieldNames = new string[] { };
private static readonly uint[] _testPackedExtensionsLiteFieldTags = new uint[] { };
public static TestPackedExtensionsLite DefaultInstance {
@@ -9551,7 +9591,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedExtensionsLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestPackedExtensionsLite ThisMessage {
@@ -9634,6 +9674,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestPackedExtensionsLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestPackedExtensionsLite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -9649,22 +9693,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestPackedExtensionsLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestPackedExtensionsLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestPackedExtensionsLite result;
+ private bool resultIsReadOnly;
+ private TestPackedExtensionsLite result;
private TestPackedExtensionsLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestPackedExtensionsLite original = result;
result = new TestPackedExtensionsLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -9679,13 +9723,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestPackedExtensionsLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -9697,11 +9741,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedExtensionsLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -9766,7 +9810,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestUnpackedExtensionsLite : pb::ExtendableMessageLite<TestUnpackedExtensionsLite, TestUnpackedExtensionsLite.Builder> {
private TestUnpackedExtensionsLite() { }
- private static readonly TestUnpackedExtensionsLite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestUnpackedExtensionsLite defaultInstance = new TestUnpackedExtensionsLite().MakeReadOnly();
private static readonly string[] _testUnpackedExtensionsLiteFieldNames = new string[] { };
private static readonly uint[] _testUnpackedExtensionsLiteFieldTags = new uint[] { };
public static TestUnpackedExtensionsLite DefaultInstance {
@@ -9774,7 +9818,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedExtensionsLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestUnpackedExtensionsLite ThisMessage {
@@ -9857,6 +9901,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestUnpackedExtensionsLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestUnpackedExtensionsLite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -9872,22 +9920,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestUnpackedExtensionsLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestUnpackedExtensionsLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestUnpackedExtensionsLite result;
+ private bool resultIsReadOnly;
+ private TestUnpackedExtensionsLite result;
private TestUnpackedExtensionsLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestUnpackedExtensionsLite original = result;
result = new TestUnpackedExtensionsLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -9902,13 +9950,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestUnpackedExtensionsLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -9920,11 +9968,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedExtensionsLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -9989,7 +10037,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestNestedExtensionLite : pb::GeneratedMessageLite<TestNestedExtensionLite, TestNestedExtensionLite.Builder> {
private TestNestedExtensionLite() { }
- private static readonly TestNestedExtensionLite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestNestedExtensionLite defaultInstance = new TestNestedExtensionLite().MakeReadOnly();
private static readonly string[] _testNestedExtensionLiteFieldNames = new string[] { };
private static readonly uint[] _testNestedExtensionLiteFieldTags = new uint[] { };
public static TestNestedExtensionLite DefaultInstance {
@@ -9997,7 +10045,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestNestedExtensionLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestNestedExtensionLite ThisMessage {
@@ -10075,6 +10123,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestNestedExtensionLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestNestedExtensionLite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -10090,22 +10142,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestNestedExtensionLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestNestedExtensionLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestNestedExtensionLite result;
+ private bool resultIsReadOnly;
+ private TestNestedExtensionLite result;
private TestNestedExtensionLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestNestedExtensionLite original = result;
result = new TestNestedExtensionLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -10120,13 +10172,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestNestedExtensionLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -10138,11 +10190,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestNestedExtensionLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
@@ -10206,7 +10258,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestDeprecatedLite : pb::GeneratedMessageLite<TestDeprecatedLite, TestDeprecatedLite.Builder> {
private TestDeprecatedLite() { }
- private static readonly TestDeprecatedLite defaultInstance = new Builder().BuildPartial();
+ private static readonly TestDeprecatedLite defaultInstance = new TestDeprecatedLite().MakeReadOnly();
private static readonly string[] _testDeprecatedLiteFieldNames = new string[] { "deprecated_field" };
private static readonly uint[] _testDeprecatedLiteFieldTags = new uint[] { 8 };
public static TestDeprecatedLite DefaultInstance {
@@ -10214,7 +10266,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDeprecatedLite DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestDeprecatedLite ThisMessage {
@@ -10311,6 +10363,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestDeprecatedLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestDeprecatedLite MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -10326,22 +10382,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestDeprecatedLite();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestDeprecatedLite cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestDeprecatedLite result;
+ private bool resultIsReadOnly;
+ private TestDeprecatedLite result;
private TestDeprecatedLite PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestDeprecatedLite original = result;
result = new TestDeprecatedLite();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -10356,13 +10412,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestDeprecatedLite();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -10374,11 +10430,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDeprecatedLite BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessageLite other) {
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs
index 547d712a..35064953 100644
--- a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs
@@ -1123,7 +1123,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestAllTypes : pb::GeneratedMessage<TestAllTypes, TestAllTypes.Builder> {
private TestAllTypes() { }
- private static readonly TestAllTypes defaultInstance = new Builder().BuildPartial();
+ private static readonly TestAllTypes defaultInstance = new TestAllTypes().MakeReadOnly();
private static readonly string[] _testAllTypesFieldNames = new string[] { "default_bool", "default_bytes", "default_cord", "default_double", "default_fixed32", "default_fixed64", "default_float", "default_foreign_enum", "default_import_enum", "default_int32", "default_int64", "default_nested_enum", "default_sfixed32", "default_sfixed64", "default_sint32", "default_sint64", "default_string", "default_string_piece", "default_uint32", "default_uint64", "optional_bool", "optional_bytes", "optional_cord", "optional_double", "optional_fixed32", "optional_fixed64", "optional_float", "optional_foreign_enum", "optional_foreign_message", "optional_import_enum", "optional_import_message", "optional_int32", "optional_int64", "optional_nested_enum", "optional_nested_message", "optional_sfixed32", "optional_sfixed64", "optional_sint32", "optional_sint64", "optional_string", "optional_string_piece", "optional_uint32", "optional_uint64", "optionalgroup", "repeated_bool", "repeated_bytes", "repeated_cord", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_nested_enum", "repeated_nested_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_string_piece", "repeated_uint32", "repeated_uint64", "repeatedgroup" };
private static readonly uint[] _testAllTypesFieldTags = new uint[] { 584, 602, 682, 577, 541, 545, 573, 656, 664, 488, 496, 648, 557, 561, 520, 528, 594, 674, 504, 512, 104, 122, 202, 97, 61, 65, 93, 176, 154, 184, 162, 8, 16, 168, 146, 77, 81, 40, 48, 114, 194, 24, 32, 131, 344, 362, 442, 337, 301, 305, 333, 416, 394, 424, 402, 248, 256, 408, 386, 317, 321, 280, 288, 354, 434, 264, 272, 371 };
public static TestAllTypes DefaultInstance {
@@ -1131,7 +1131,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllTypes DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestAllTypes ThisMessage {
@@ -1164,7 +1164,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
private NestedMessage() { }
- private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
private static readonly string[] _nestedMessageFieldNames = new string[] { "bb" };
private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8 };
public static NestedMessage DefaultInstance {
@@ -1172,7 +1172,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override NestedMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override NestedMessage ThisMessage {
@@ -1258,6 +1258,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1273,22 +1277,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new NestedMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(NestedMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- NestedMessage result;
+ private bool resultIsReadOnly;
+ private NestedMessage result;
private NestedMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
NestedMessage original = result;
result = new NestedMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1303,13 +1307,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new NestedMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1325,11 +1329,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override NestedMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1434,7 +1438,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OptionalGroup : pb::GeneratedMessage<OptionalGroup, OptionalGroup.Builder> {
private OptionalGroup() { }
- private static readonly OptionalGroup defaultInstance = new Builder().BuildPartial();
+ private static readonly OptionalGroup defaultInstance = new OptionalGroup().MakeReadOnly();
private static readonly string[] _optionalGroupFieldNames = new string[] { "a" };
private static readonly uint[] _optionalGroupFieldTags = new uint[] { 136 };
public static OptionalGroup DefaultInstance {
@@ -1442,7 +1446,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override OptionalGroup ThisMessage {
@@ -1528,6 +1532,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static OptionalGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private OptionalGroup MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1543,22 +1551,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new OptionalGroup();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(OptionalGroup cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- OptionalGroup result;
+ private bool resultIsReadOnly;
+ private OptionalGroup result;
private OptionalGroup PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
OptionalGroup original = result;
result = new OptionalGroup();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1573,13 +1581,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new OptionalGroup();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1595,11 +1603,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -1704,7 +1712,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class RepeatedGroup : pb::GeneratedMessage<RepeatedGroup, RepeatedGroup.Builder> {
private RepeatedGroup() { }
- private static readonly RepeatedGroup defaultInstance = new Builder().BuildPartial();
+ private static readonly RepeatedGroup defaultInstance = new RepeatedGroup().MakeReadOnly();
private static readonly string[] _repeatedGroupFieldNames = new string[] { "a" };
private static readonly uint[] _repeatedGroupFieldTags = new uint[] { 376 };
public static RepeatedGroup DefaultInstance {
@@ -1712,7 +1720,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override RepeatedGroup ThisMessage {
@@ -1798,6 +1806,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static RepeatedGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private RepeatedGroup MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -1813,22 +1825,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new RepeatedGroup();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(RepeatedGroup cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- RepeatedGroup result;
+ private bool resultIsReadOnly;
+ private RepeatedGroup result;
private RepeatedGroup PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
RepeatedGroup original = result;
result = new RepeatedGroup();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -1843,13 +1855,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new RepeatedGroup();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -1865,11 +1877,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -2128,42 +2140,42 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int OptionalGroupFieldNumber = 16;
private bool hasOptionalGroup;
- private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup optionalGroup_;
public bool HasOptionalGroup {
get { return hasOptionalGroup; }
}
public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {
- get { return optionalGroup_; }
+ get { return optionalGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance; }
}
public const int OptionalNestedMessageFieldNumber = 18;
private bool hasOptionalNestedMessage;
- private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage optionalNestedMessage_;
public bool HasOptionalNestedMessage {
get { return hasOptionalNestedMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
- get { return optionalNestedMessage_; }
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
}
public const int OptionalForeignMessageFieldNumber = 19;
private bool hasOptionalForeignMessage;
- private global::Google.ProtocolBuffers.TestProtos.ForeignMessage optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage optionalForeignMessage_;
public bool HasOptionalForeignMessage {
get { return hasOptionalForeignMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {
- get { return optionalForeignMessage_; }
+ get { return optionalForeignMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
}
public const int OptionalImportMessageFieldNumber = 20;
private bool hasOptionalImportMessage;
- private global::Google.ProtocolBuffers.TestProtos.ImportMessage optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ImportMessage optionalImportMessage_;
public bool HasOptionalImportMessage {
get { return hasOptionalImportMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {
- get { return optionalImportMessage_; }
+ get { return optionalImportMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance; }
}
public const int OptionalNestedEnumFieldNumber = 21;
@@ -3271,6 +3283,34 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestAllTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestAllTypes MakeReadOnly() {
+ repeatedInt32_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedUint32_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ repeatedSint32_.MakeReadOnly();
+ repeatedSint64_.MakeReadOnly();
+ repeatedFixed32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedSfixed32_.MakeReadOnly();
+ repeatedSfixed64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedDouble_.MakeReadOnly();
+ repeatedBool_.MakeReadOnly();
+ repeatedString_.MakeReadOnly();
+ repeatedBytes_.MakeReadOnly();
+ repeatedGroup_.MakeReadOnly();
+ repeatedNestedMessage_.MakeReadOnly();
+ repeatedForeignMessage_.MakeReadOnly();
+ repeatedImportMessage_.MakeReadOnly();
+ repeatedNestedEnum_.MakeReadOnly();
+ repeatedForeignEnum_.MakeReadOnly();
+ repeatedImportEnum_.MakeReadOnly();
+ repeatedStringPiece_.MakeReadOnly();
+ repeatedCord_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -3286,22 +3326,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestAllTypes();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestAllTypes cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestAllTypes result;
+ private bool resultIsReadOnly;
+ private TestAllTypes result;
private TestAllTypes PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestAllTypes original = result;
result = new TestAllTypes();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -3316,13 +3356,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestAllTypes();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -3338,35 +3378,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllTypes BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedInt32_.MakeReadOnly();
- result.repeatedInt64_.MakeReadOnly();
- result.repeatedUint32_.MakeReadOnly();
- result.repeatedUint64_.MakeReadOnly();
- result.repeatedSint32_.MakeReadOnly();
- result.repeatedSint64_.MakeReadOnly();
- result.repeatedFixed32_.MakeReadOnly();
- result.repeatedFixed64_.MakeReadOnly();
- result.repeatedSfixed32_.MakeReadOnly();
- result.repeatedSfixed64_.MakeReadOnly();
- result.repeatedFloat_.MakeReadOnly();
- result.repeatedDouble_.MakeReadOnly();
- result.repeatedBool_.MakeReadOnly();
- result.repeatedString_.MakeReadOnly();
- result.repeatedBytes_.MakeReadOnly();
- result.repeatedGroup_.MakeReadOnly();
- result.repeatedNestedMessage_.MakeReadOnly();
- result.repeatedForeignMessage_.MakeReadOnly();
- result.repeatedImportMessage_.MakeReadOnly();
- result.repeatedNestedEnum_.MakeReadOnly();
- result.repeatedForeignEnum_.MakeReadOnly();
- result.repeatedImportEnum_.MakeReadOnly();
- result.repeatedStringPiece_.MakeReadOnly();
- result.repeatedCord_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -4367,7 +4383,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalGroup() {
PrepareBuilder();
result.hasOptionalGroup = false;
- result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance;
+ result.optionalGroup_ = null;
return this;
}
@@ -4407,7 +4423,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalNestedMessage() {
PrepareBuilder();
result.hasOptionalNestedMessage = false;
- result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ result.optionalNestedMessage_ = null;
return this;
}
@@ -4447,7 +4463,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalForeignMessage() {
PrepareBuilder();
result.hasOptionalForeignMessage = false;
- result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ result.optionalForeignMessage_ = null;
return this;
}
@@ -4487,7 +4503,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalImportMessage() {
PrepareBuilder();
result.hasOptionalImportMessage = false;
- result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance;
+ result.optionalImportMessage_ = null;
return this;
}
@@ -5819,7 +5835,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestDeprecatedFields : pb::GeneratedMessage<TestDeprecatedFields, TestDeprecatedFields.Builder> {
private TestDeprecatedFields() { }
- private static readonly TestDeprecatedFields defaultInstance = new Builder().BuildPartial();
+ private static readonly TestDeprecatedFields defaultInstance = new TestDeprecatedFields().MakeReadOnly();
private static readonly string[] _testDeprecatedFieldsFieldNames = new string[] { "deprecated_int32" };
private static readonly uint[] _testDeprecatedFieldsFieldTags = new uint[] { 8 };
public static TestDeprecatedFields DefaultInstance {
@@ -5827,7 +5843,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDeprecatedFields DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestDeprecatedFields ThisMessage {
@@ -5915,6 +5931,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestDeprecatedFields ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestDeprecatedFields MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -5930,22 +5950,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestDeprecatedFields();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestDeprecatedFields cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestDeprecatedFields result;
+ private bool resultIsReadOnly;
+ private TestDeprecatedFields result;
private TestDeprecatedFields PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestDeprecatedFields original = result;
result = new TestDeprecatedFields();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -5960,13 +5980,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestDeprecatedFields();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -5982,11 +6002,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDeprecatedFields BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -6095,7 +6115,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class ForeignMessage : pb::GeneratedMessage<ForeignMessage, ForeignMessage.Builder> {
private ForeignMessage() { }
- private static readonly ForeignMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly ForeignMessage defaultInstance = new ForeignMessage().MakeReadOnly();
private static readonly string[] _foreignMessageFieldNames = new string[] { "c" };
private static readonly uint[] _foreignMessageFieldTags = new uint[] { 8 };
public static ForeignMessage DefaultInstance {
@@ -6103,7 +6123,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ForeignMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override ForeignMessage ThisMessage {
@@ -6189,6 +6209,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static ForeignMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private ForeignMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6204,22 +6228,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new ForeignMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(ForeignMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- ForeignMessage result;
+ private bool resultIsReadOnly;
+ private ForeignMessage result;
private ForeignMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
ForeignMessage original = result;
result = new ForeignMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6234,13 +6258,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new ForeignMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6256,11 +6280,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override ForeignMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -6365,7 +6389,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestAllExtensions : pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder> {
private TestAllExtensions() { }
- private static readonly TestAllExtensions defaultInstance = new Builder().BuildPartial();
+ private static readonly TestAllExtensions defaultInstance = new TestAllExtensions().MakeReadOnly();
private static readonly string[] _testAllExtensionsFieldNames = new string[] { };
private static readonly uint[] _testAllExtensionsFieldTags = new uint[] { };
public static TestAllExtensions DefaultInstance {
@@ -6373,7 +6397,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllExtensions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestAllExtensions ThisMessage {
@@ -6447,6 +6471,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestAllExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestAllExtensions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6462,22 +6490,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestAllExtensions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestAllExtensions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestAllExtensions result;
+ private bool resultIsReadOnly;
+ private TestAllExtensions result;
private TestAllExtensions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestAllExtensions original = result;
result = new TestAllExtensions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6492,13 +6520,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestAllExtensions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6514,11 +6542,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestAllExtensions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -6597,7 +6625,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OptionalGroup_extension : pb::GeneratedMessage<OptionalGroup_extension, OptionalGroup_extension.Builder> {
private OptionalGroup_extension() { }
- private static readonly OptionalGroup_extension defaultInstance = new Builder().BuildPartial();
+ private static readonly OptionalGroup_extension defaultInstance = new OptionalGroup_extension().MakeReadOnly();
private static readonly string[] _optionalGroupExtensionFieldNames = new string[] { "a" };
private static readonly uint[] _optionalGroupExtensionFieldTags = new uint[] { 136 };
public static OptionalGroup_extension DefaultInstance {
@@ -6605,7 +6633,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup_extension DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override OptionalGroup_extension ThisMessage {
@@ -6691,6 +6719,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static OptionalGroup_extension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private OptionalGroup_extension MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6706,22 +6738,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new OptionalGroup_extension();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(OptionalGroup_extension cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- OptionalGroup_extension result;
+ private bool resultIsReadOnly;
+ private OptionalGroup_extension result;
private OptionalGroup_extension PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
OptionalGroup_extension original = result;
result = new OptionalGroup_extension();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -6736,13 +6768,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new OptionalGroup_extension();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -6758,11 +6790,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OptionalGroup_extension BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -6867,7 +6899,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class RepeatedGroup_extension : pb::GeneratedMessage<RepeatedGroup_extension, RepeatedGroup_extension.Builder> {
private RepeatedGroup_extension() { }
- private static readonly RepeatedGroup_extension defaultInstance = new Builder().BuildPartial();
+ private static readonly RepeatedGroup_extension defaultInstance = new RepeatedGroup_extension().MakeReadOnly();
private static readonly string[] _repeatedGroupExtensionFieldNames = new string[] { "a" };
private static readonly uint[] _repeatedGroupExtensionFieldTags = new uint[] { 376 };
public static RepeatedGroup_extension DefaultInstance {
@@ -6875,7 +6907,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup_extension DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override RepeatedGroup_extension ThisMessage {
@@ -6961,6 +6993,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static RepeatedGroup_extension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private RepeatedGroup_extension MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -6976,22 +7012,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new RepeatedGroup_extension();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(RepeatedGroup_extension cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- RepeatedGroup_extension result;
+ private bool resultIsReadOnly;
+ private RepeatedGroup_extension result;
private RepeatedGroup_extension PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
RepeatedGroup_extension original = result;
result = new RepeatedGroup_extension();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -7006,13 +7042,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new RepeatedGroup_extension();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -7028,11 +7064,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override RepeatedGroup_extension BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -7137,7 +7173,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestNestedExtension : pb::GeneratedMessage<TestNestedExtension, TestNestedExtension.Builder> {
private TestNestedExtension() { }
- private static readonly TestNestedExtension defaultInstance = new Builder().BuildPartial();
+ private static readonly TestNestedExtension defaultInstance = new TestNestedExtension().MakeReadOnly();
private static readonly string[] _testNestedExtensionFieldNames = new string[] { };
private static readonly uint[] _testNestedExtensionFieldTags = new uint[] { };
public static TestNestedExtension DefaultInstance {
@@ -7145,7 +7181,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestNestedExtension DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestNestedExtension ThisMessage {
@@ -7217,6 +7253,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestNestedExtension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestNestedExtension MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -7232,22 +7272,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestNestedExtension();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestNestedExtension cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestNestedExtension result;
+ private bool resultIsReadOnly;
+ private TestNestedExtension result;
private TestNestedExtension PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestNestedExtension original = result;
result = new TestNestedExtension();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -7262,13 +7302,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestNestedExtension();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -7284,11 +7324,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestNestedExtension BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -7366,7 +7406,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestRequired : pb::GeneratedMessage<TestRequired, TestRequired.Builder> {
private TestRequired() { }
- private static readonly TestRequired defaultInstance = new Builder().BuildPartial();
+ private static readonly TestRequired defaultInstance = new TestRequired().MakeReadOnly();
private static readonly string[] _testRequiredFieldNames = new string[] { "a", "b", "c", "dummy10", "dummy11", "dummy12", "dummy13", "dummy14", "dummy15", "dummy16", "dummy17", "dummy18", "dummy19", "dummy2", "dummy20", "dummy21", "dummy22", "dummy23", "dummy24", "dummy25", "dummy26", "dummy27", "dummy28", "dummy29", "dummy30", "dummy31", "dummy32", "dummy4", "dummy5", "dummy6", "dummy7", "dummy8", "dummy9" };
private static readonly uint[] _testRequiredFieldTags = new uint[] { 8, 24, 264, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 16, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 256, 32, 40, 48, 56, 64, 72 };
public static TestRequired DefaultInstance {
@@ -7374,7 +7414,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRequired DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestRequired ThisMessage {
@@ -7979,6 +8019,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestRequired ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestRequired MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -7994,22 +8038,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestRequired();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestRequired cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestRequired result;
+ private bool resultIsReadOnly;
+ private TestRequired result;
private TestRequired PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestRequired original = result;
result = new TestRequired();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -8024,13 +8068,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestRequired();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -8046,11 +8090,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRequired BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -9019,7 +9063,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestRequiredForeign : pb::GeneratedMessage<TestRequiredForeign, TestRequiredForeign.Builder> {
private TestRequiredForeign() { }
- private static readonly TestRequiredForeign defaultInstance = new Builder().BuildPartial();
+ private static readonly TestRequiredForeign defaultInstance = new TestRequiredForeign().MakeReadOnly();
private static readonly string[] _testRequiredForeignFieldNames = new string[] { "dummy", "optional_message", "repeated_message" };
private static readonly uint[] _testRequiredForeignFieldTags = new uint[] { 24, 10, 18 };
public static TestRequiredForeign DefaultInstance {
@@ -9027,7 +9071,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRequiredForeign DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestRequiredForeign ThisMessage {
@@ -9044,12 +9088,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int OptionalMessageFieldNumber = 1;
private bool hasOptionalMessage;
- private global::Google.ProtocolBuffers.TestProtos.TestRequired optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestRequired optionalMessage_;
public bool HasOptionalMessage {
get { return hasOptionalMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {
- get { return optionalMessage_; }
+ get { return optionalMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance; }
}
public const int RepeatedMessageFieldNumber = 2;
@@ -9153,6 +9197,11 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestRequiredForeign ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestRequiredForeign MakeReadOnly() {
+ repeatedMessage_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -9168,22 +9217,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestRequiredForeign();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestRequiredForeign cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestRequiredForeign result;
+ private bool resultIsReadOnly;
+ private TestRequiredForeign result;
private TestRequiredForeign PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestRequiredForeign original = result;
result = new TestRequiredForeign();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -9198,13 +9247,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestRequiredForeign();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -9220,12 +9269,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRequiredForeign BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedMessage_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -9355,7 +9403,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalMessage() {
PrepareBuilder();
result.hasOptionalMessage = false;
- result.optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance;
+ result.optionalMessage_ = null;
return this;
}
@@ -9433,7 +9481,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestForeignNested : pb::GeneratedMessage<TestForeignNested, TestForeignNested.Builder> {
private TestForeignNested() { }
- private static readonly TestForeignNested defaultInstance = new Builder().BuildPartial();
+ private static readonly TestForeignNested defaultInstance = new TestForeignNested().MakeReadOnly();
private static readonly string[] _testForeignNestedFieldNames = new string[] { "foreign_nested" };
private static readonly uint[] _testForeignNestedFieldTags = new uint[] { 10 };
public static TestForeignNested DefaultInstance {
@@ -9441,7 +9489,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestForeignNested DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestForeignNested ThisMessage {
@@ -9458,12 +9506,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int ForeignNestedFieldNumber = 1;
private bool hasForeignNested;
- private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage foreignNested_;
public bool HasForeignNested {
get { return hasForeignNested; }
}
public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {
- get { return foreignNested_; }
+ get { return foreignNested_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
}
public override bool IsInitialized {
@@ -9527,6 +9575,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestForeignNested ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestForeignNested MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -9542,22 +9594,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestForeignNested();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestForeignNested cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestForeignNested result;
+ private bool resultIsReadOnly;
+ private TestForeignNested result;
private TestForeignNested PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestForeignNested original = result;
result = new TestForeignNested();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -9572,13 +9624,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestForeignNested();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -9594,11 +9646,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestForeignNested BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -9714,7 +9766,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearForeignNested() {
PrepareBuilder();
result.hasForeignNested = false;
- result.foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ result.foreignNested_ = null;
return this;
}
}
@@ -9728,7 +9780,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestEmptyMessage : pb::GeneratedMessage<TestEmptyMessage, TestEmptyMessage.Builder> {
private TestEmptyMessage() { }
- private static readonly TestEmptyMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly TestEmptyMessage defaultInstance = new TestEmptyMessage().MakeReadOnly();
private static readonly string[] _testEmptyMessageFieldNames = new string[] { };
private static readonly uint[] _testEmptyMessageFieldTags = new uint[] { };
public static TestEmptyMessage DefaultInstance {
@@ -9736,7 +9788,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestEmptyMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestEmptyMessage ThisMessage {
@@ -9806,6 +9858,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestEmptyMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestEmptyMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -9821,22 +9877,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestEmptyMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestEmptyMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestEmptyMessage result;
+ private bool resultIsReadOnly;
+ private TestEmptyMessage result;
private TestEmptyMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestEmptyMessage original = result;
result = new TestEmptyMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -9851,13 +9907,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestEmptyMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -9873,11 +9929,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestEmptyMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -9955,7 +10011,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestEmptyMessageWithExtensions : pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> {
private TestEmptyMessageWithExtensions() { }
- private static readonly TestEmptyMessageWithExtensions defaultInstance = new Builder().BuildPartial();
+ private static readonly TestEmptyMessageWithExtensions defaultInstance = new TestEmptyMessageWithExtensions().MakeReadOnly();
private static readonly string[] _testEmptyMessageWithExtensionsFieldNames = new string[] { };
private static readonly uint[] _testEmptyMessageWithExtensionsFieldTags = new uint[] { };
public static TestEmptyMessageWithExtensions DefaultInstance {
@@ -9963,7 +10019,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestEmptyMessageWithExtensions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestEmptyMessageWithExtensions ThisMessage {
@@ -10037,6 +10093,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestEmptyMessageWithExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestEmptyMessageWithExtensions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -10052,22 +10112,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestEmptyMessageWithExtensions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestEmptyMessageWithExtensions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestEmptyMessageWithExtensions result;
+ private bool resultIsReadOnly;
+ private TestEmptyMessageWithExtensions result;
private TestEmptyMessageWithExtensions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestEmptyMessageWithExtensions original = result;
result = new TestEmptyMessageWithExtensions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -10082,13 +10142,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestEmptyMessageWithExtensions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -10104,11 +10164,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestEmptyMessageWithExtensions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -10187,7 +10247,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMultipleExtensionRanges : pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> {
private TestMultipleExtensionRanges() { }
- private static readonly TestMultipleExtensionRanges defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMultipleExtensionRanges defaultInstance = new TestMultipleExtensionRanges().MakeReadOnly();
private static readonly string[] _testMultipleExtensionRangesFieldNames = new string[] { };
private static readonly uint[] _testMultipleExtensionRangesFieldTags = new uint[] { };
public static TestMultipleExtensionRanges DefaultInstance {
@@ -10195,7 +10255,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMultipleExtensionRanges DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMultipleExtensionRanges ThisMessage {
@@ -10271,6 +10331,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMultipleExtensionRanges ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMultipleExtensionRanges MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -10286,22 +10350,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMultipleExtensionRanges();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMultipleExtensionRanges cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMultipleExtensionRanges result;
+ private bool resultIsReadOnly;
+ private TestMultipleExtensionRanges result;
private TestMultipleExtensionRanges PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMultipleExtensionRanges original = result;
result = new TestMultipleExtensionRanges();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -10316,13 +10380,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMultipleExtensionRanges();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -10338,11 +10402,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMultipleExtensionRanges BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -10421,7 +10485,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestReallyLargeTagNumber : pb::GeneratedMessage<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> {
private TestReallyLargeTagNumber() { }
- private static readonly TestReallyLargeTagNumber defaultInstance = new Builder().BuildPartial();
+ private static readonly TestReallyLargeTagNumber defaultInstance = new TestReallyLargeTagNumber().MakeReadOnly();
private static readonly string[] _testReallyLargeTagNumberFieldNames = new string[] { "a", "bb" };
private static readonly uint[] _testReallyLargeTagNumberFieldTags = new uint[] { 8, 2147483640 };
public static TestReallyLargeTagNumber DefaultInstance {
@@ -10429,7 +10493,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestReallyLargeTagNumber DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestReallyLargeTagNumber ThisMessage {
@@ -10531,6 +10595,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestReallyLargeTagNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestReallyLargeTagNumber MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -10546,22 +10614,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestReallyLargeTagNumber();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestReallyLargeTagNumber cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestReallyLargeTagNumber result;
+ private bool resultIsReadOnly;
+ private TestReallyLargeTagNumber result;
private TestReallyLargeTagNumber PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestReallyLargeTagNumber original = result;
result = new TestReallyLargeTagNumber();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -10576,13 +10644,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestReallyLargeTagNumber();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -10598,11 +10666,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestReallyLargeTagNumber BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -10734,7 +10802,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestRecursiveMessage : pb::GeneratedMessage<TestRecursiveMessage, TestRecursiveMessage.Builder> {
private TestRecursiveMessage() { }
- private static readonly TestRecursiveMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly TestRecursiveMessage defaultInstance = new TestRecursiveMessage().MakeReadOnly();
private static readonly string[] _testRecursiveMessageFieldNames = new string[] { "a", "i" };
private static readonly uint[] _testRecursiveMessageFieldTags = new uint[] { 10, 16 };
public static TestRecursiveMessage DefaultInstance {
@@ -10742,7 +10810,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRecursiveMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestRecursiveMessage ThisMessage {
@@ -10759,12 +10827,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int AFieldNumber = 1;
private bool hasA;
- private global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage a_;
public bool HasA {
get { return hasA; }
}
public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {
- get { return a_; }
+ get { return a_ ?? global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance; }
}
public const int IFieldNumber = 2;
@@ -10844,6 +10912,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestRecursiveMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestRecursiveMessage MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -10859,22 +10931,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestRecursiveMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestRecursiveMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestRecursiveMessage result;
+ private bool resultIsReadOnly;
+ private TestRecursiveMessage result;
private TestRecursiveMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestRecursiveMessage original = result;
result = new TestRecursiveMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -10889,13 +10961,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestRecursiveMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -10911,11 +10983,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRecursiveMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -11038,7 +11110,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearA() {
PrepareBuilder();
result.hasA = false;
- result.a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance;
+ result.a_ = null;
return this;
}
@@ -11072,7 +11144,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMutualRecursionA : pb::GeneratedMessage<TestMutualRecursionA, TestMutualRecursionA.Builder> {
private TestMutualRecursionA() { }
- private static readonly TestMutualRecursionA defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMutualRecursionA defaultInstance = new TestMutualRecursionA().MakeReadOnly();
private static readonly string[] _testMutualRecursionAFieldNames = new string[] { "bb" };
private static readonly uint[] _testMutualRecursionAFieldTags = new uint[] { 10 };
public static TestMutualRecursionA DefaultInstance {
@@ -11080,7 +11152,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMutualRecursionA DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMutualRecursionA ThisMessage {
@@ -11097,12 +11169,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int BbFieldNumber = 1;
private bool hasBb;
- private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB bb_;
public bool HasBb {
get { return hasBb; }
}
public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {
- get { return bb_; }
+ get { return bb_ ?? global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance; }
}
public override bool IsInitialized {
@@ -11166,6 +11238,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMutualRecursionA ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMutualRecursionA MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -11181,22 +11257,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMutualRecursionA();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMutualRecursionA cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMutualRecursionA result;
+ private bool resultIsReadOnly;
+ private TestMutualRecursionA result;
private TestMutualRecursionA PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMutualRecursionA original = result;
result = new TestMutualRecursionA();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -11211,13 +11287,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMutualRecursionA();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -11233,11 +11309,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMutualRecursionA BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -11353,7 +11429,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearBb() {
PrepareBuilder();
result.hasBb = false;
- result.bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance;
+ result.bb_ = null;
return this;
}
}
@@ -11367,7 +11443,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestMutualRecursionB : pb::GeneratedMessage<TestMutualRecursionB, TestMutualRecursionB.Builder> {
private TestMutualRecursionB() { }
- private static readonly TestMutualRecursionB defaultInstance = new Builder().BuildPartial();
+ private static readonly TestMutualRecursionB defaultInstance = new TestMutualRecursionB().MakeReadOnly();
private static readonly string[] _testMutualRecursionBFieldNames = new string[] { "a", "optional_int32" };
private static readonly uint[] _testMutualRecursionBFieldTags = new uint[] { 10, 16 };
public static TestMutualRecursionB DefaultInstance {
@@ -11375,7 +11451,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMutualRecursionB DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestMutualRecursionB ThisMessage {
@@ -11392,12 +11468,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int AFieldNumber = 1;
private bool hasA;
- private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA a_;
public bool HasA {
get { return hasA; }
}
public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {
- get { return a_; }
+ get { return a_ ?? global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance; }
}
public const int OptionalInt32FieldNumber = 2;
@@ -11477,6 +11553,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestMutualRecursionB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestMutualRecursionB MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -11492,22 +11572,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestMutualRecursionB();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestMutualRecursionB cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestMutualRecursionB result;
+ private bool resultIsReadOnly;
+ private TestMutualRecursionB result;
private TestMutualRecursionB PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestMutualRecursionB original = result;
result = new TestMutualRecursionB();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -11522,13 +11602,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestMutualRecursionB();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -11544,11 +11624,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestMutualRecursionB BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -11671,7 +11751,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearA() {
PrepareBuilder();
result.hasA = false;
- result.a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance;
+ result.a_ = null;
return this;
}
@@ -11705,7 +11785,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestDupFieldNumber : pb::GeneratedMessage<TestDupFieldNumber, TestDupFieldNumber.Builder> {
private TestDupFieldNumber() { }
- private static readonly TestDupFieldNumber defaultInstance = new Builder().BuildPartial();
+ private static readonly TestDupFieldNumber defaultInstance = new TestDupFieldNumber().MakeReadOnly();
private static readonly string[] _testDupFieldNumberFieldNames = new string[] { "a", "bar", "foo" };
private static readonly uint[] _testDupFieldNumberFieldTags = new uint[] { 8, 27, 19 };
public static TestDupFieldNumber DefaultInstance {
@@ -11713,7 +11793,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDupFieldNumber DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestDupFieldNumber ThisMessage {
@@ -11738,7 +11818,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Foo : pb::GeneratedMessage<Foo, Foo.Builder> {
private Foo() { }
- private static readonly Foo defaultInstance = new Builder().BuildPartial();
+ private static readonly Foo defaultInstance = new Foo().MakeReadOnly();
private static readonly string[] _fooFieldNames = new string[] { "a" };
private static readonly uint[] _fooFieldTags = new uint[] { 8 };
public static Foo DefaultInstance {
@@ -11746,7 +11826,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Foo DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override Foo ThisMessage {
@@ -11832,6 +11912,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static Foo ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private Foo MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -11847,22 +11931,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new Foo();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(Foo cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- Foo result;
+ private bool resultIsReadOnly;
+ private Foo result;
private Foo PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
Foo original = result;
result = new Foo();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -11877,13 +11961,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new Foo();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -11899,11 +11983,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Foo BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -12008,7 +12092,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class Bar : pb::GeneratedMessage<Bar, Bar.Builder> {
private Bar() { }
- private static readonly Bar defaultInstance = new Builder().BuildPartial();
+ private static readonly Bar defaultInstance = new Bar().MakeReadOnly();
private static readonly string[] _barFieldNames = new string[] { "a" };
private static readonly uint[] _barFieldTags = new uint[] { 8 };
public static Bar DefaultInstance {
@@ -12016,7 +12100,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Bar DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override Bar ThisMessage {
@@ -12102,6 +12186,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static Bar ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private Bar MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -12117,22 +12205,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new Bar();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(Bar cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- Bar result;
+ private bool resultIsReadOnly;
+ private Bar result;
private Bar PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
Bar original = result;
result = new Bar();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -12147,13 +12235,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new Bar();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -12169,11 +12257,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Bar BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -12288,22 +12376,22 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int FooFieldNumber = 2;
private bool hasFoo;
- private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo foo_;
public bool HasFoo {
get { return hasFoo; }
}
public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {
- get { return foo_; }
+ get { return foo_ ?? global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance; }
}
public const int BarFieldNumber = 3;
private bool hasBar;
- private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar bar_;
public bool HasBar {
get { return hasBar; }
}
public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {
- get { return bar_; }
+ get { return bar_ ?? global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance; }
}
public override bool IsInitialized {
@@ -12379,6 +12467,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestDupFieldNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestDupFieldNumber MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -12394,22 +12486,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestDupFieldNumber();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestDupFieldNumber cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestDupFieldNumber result;
+ private bool resultIsReadOnly;
+ private TestDupFieldNumber result;
private TestDupFieldNumber PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestDupFieldNumber original = result;
result = new TestDupFieldNumber();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -12424,13 +12516,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestDupFieldNumber();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -12446,11 +12538,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDupFieldNumber BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -12605,7 +12697,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearFoo() {
PrepareBuilder();
result.hasFoo = false;
- result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance;
+ result.foo_ = null;
return this;
}
@@ -12645,7 +12737,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearBar() {
PrepareBuilder();
result.hasBar = false;
- result.bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance;
+ result.bar_ = null;
return this;
}
}
@@ -12659,7 +12751,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestNestedMessageHasBits : pb::GeneratedMessage<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> {
private TestNestedMessageHasBits() { }
- private static readonly TestNestedMessageHasBits defaultInstance = new Builder().BuildPartial();
+ private static readonly TestNestedMessageHasBits defaultInstance = new TestNestedMessageHasBits().MakeReadOnly();
private static readonly string[] _testNestedMessageHasBitsFieldNames = new string[] { "optional_nested_message" };
private static readonly uint[] _testNestedMessageHasBitsFieldTags = new uint[] { 10 };
public static TestNestedMessageHasBits DefaultInstance {
@@ -12667,7 +12759,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestNestedMessageHasBits DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestNestedMessageHasBits ThisMessage {
@@ -12692,7 +12784,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
private NestedMessage() { }
- private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
private static readonly string[] _nestedMessageFieldNames = new string[] { "nestedmessage_repeated_foreignmessage", "nestedmessage_repeated_int32" };
private static readonly uint[] _nestedMessageFieldTags = new uint[] { 18, 8 };
public static NestedMessage DefaultInstance {
@@ -12700,7 +12792,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override NestedMessage DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override NestedMessage ThisMessage {
@@ -12811,6 +12903,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private NestedMessage MakeReadOnly() {
+ nestedmessageRepeatedInt32_.MakeReadOnly();
+ nestedmessageRepeatedForeignmessage_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -12826,22 +12924,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new NestedMessage();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(NestedMessage cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- NestedMessage result;
+ private bool resultIsReadOnly;
+ private NestedMessage result;
private NestedMessage PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
NestedMessage original = result;
result = new NestedMessage();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -12856,13 +12954,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new NestedMessage();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -12878,13 +12976,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override NestedMessage BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.nestedmessageRepeatedInt32_.MakeReadOnly();
- result.nestedmessageRepeatedForeignmessage_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -13051,12 +13147,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int OptionalNestedMessageFieldNumber = 1;
private bool hasOptionalNestedMessage;
- private global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage optionalNestedMessage_;
public bool HasOptionalNestedMessage {
get { return hasOptionalNestedMessage; }
}
public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {
- get { return optionalNestedMessage_; }
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance; }
}
public override bool IsInitialized {
@@ -13120,6 +13216,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestNestedMessageHasBits ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestNestedMessageHasBits MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -13135,22 +13235,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestNestedMessageHasBits();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestNestedMessageHasBits cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestNestedMessageHasBits result;
+ private bool resultIsReadOnly;
+ private TestNestedMessageHasBits result;
private TestNestedMessageHasBits PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestNestedMessageHasBits original = result;
result = new TestNestedMessageHasBits();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -13165,13 +13265,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestNestedMessageHasBits();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -13187,11 +13287,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestNestedMessageHasBits BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -13307,7 +13407,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearOptionalNestedMessage() {
PrepareBuilder();
result.hasOptionalNestedMessage = false;
- result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance;
+ result.optionalNestedMessage_ = null;
return this;
}
}
@@ -13321,7 +13421,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestCamelCaseFieldNames : pb::GeneratedMessage<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> {
private TestCamelCaseFieldNames() { }
- private static readonly TestCamelCaseFieldNames defaultInstance = new Builder().BuildPartial();
+ private static readonly TestCamelCaseFieldNames defaultInstance = new TestCamelCaseFieldNames().MakeReadOnly();
private static readonly string[] _testCamelCaseFieldNamesFieldNames = new string[] { "CordField", "EnumField", "MessageField", "PrimitiveField", "RepeatedCordField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedStringPieceField", "StringField", "StringPieceField" };
private static readonly uint[] _testCamelCaseFieldNamesFieldTags = new uint[] { 50, 24, 34, 8, 98, 72, 82, 56, 66, 90, 18, 42 };
public static TestCamelCaseFieldNames DefaultInstance {
@@ -13329,7 +13429,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestCamelCaseFieldNames DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestCamelCaseFieldNames ThisMessage {
@@ -13376,12 +13476,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int MessageFieldFieldNumber = 4;
private bool hasMessageField;
- private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageField_;
public bool HasMessageField {
get { return hasMessageField; }
}
public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {
- get { return messageField_; }
+ get { return messageField_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
}
public const int StringPieceFieldFieldNumber = 5;
@@ -13630,6 +13730,16 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestCamelCaseFieldNames ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestCamelCaseFieldNames MakeReadOnly() {
+ repeatedPrimitiveField_.MakeReadOnly();
+ repeatedStringField_.MakeReadOnly();
+ repeatedEnumField_.MakeReadOnly();
+ repeatedMessageField_.MakeReadOnly();
+ repeatedStringPieceField_.MakeReadOnly();
+ repeatedCordField_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -13645,22 +13755,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestCamelCaseFieldNames();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestCamelCaseFieldNames cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestCamelCaseFieldNames result;
+ private bool resultIsReadOnly;
+ private TestCamelCaseFieldNames result;
private TestCamelCaseFieldNames PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestCamelCaseFieldNames original = result;
result = new TestCamelCaseFieldNames();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -13675,13 +13785,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestCamelCaseFieldNames();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -13697,17 +13807,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestCamelCaseFieldNames BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedPrimitiveField_.MakeReadOnly();
- result.repeatedStringField_.MakeReadOnly();
- result.repeatedEnumField_.MakeReadOnly();
- result.repeatedMessageField_.MakeReadOnly();
- result.repeatedStringPieceField_.MakeReadOnly();
- result.repeatedCordField_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -13980,7 +14084,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearMessageField() {
PrepareBuilder();
result.hasMessageField = false;
- result.messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ result.messageField_ = null;
return this;
}
@@ -14236,7 +14340,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestFieldOrderings : pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder> {
private TestFieldOrderings() { }
- private static readonly TestFieldOrderings defaultInstance = new Builder().BuildPartial();
+ private static readonly TestFieldOrderings defaultInstance = new TestFieldOrderings().MakeReadOnly();
private static readonly string[] _testFieldOrderingsFieldNames = new string[] { "my_float", "my_int", "my_string" };
private static readonly uint[] _testFieldOrderingsFieldTags = new uint[] { 813, 8, 90 };
public static TestFieldOrderings DefaultInstance {
@@ -14244,7 +14348,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestFieldOrderings DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestFieldOrderings ThisMessage {
@@ -14367,6 +14471,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestFieldOrderings ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestFieldOrderings MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -14382,22 +14490,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestFieldOrderings();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestFieldOrderings cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestFieldOrderings result;
+ private bool resultIsReadOnly;
+ private TestFieldOrderings result;
private TestFieldOrderings PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestFieldOrderings original = result;
result = new TestFieldOrderings();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -14412,13 +14520,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestFieldOrderings();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -14434,11 +14542,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestFieldOrderings BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -14599,7 +14707,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestExtremeDefaultValues : pb::GeneratedMessage<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> {
private TestExtremeDefaultValues() { }
- private static readonly TestExtremeDefaultValues defaultInstance = new Builder().BuildPartial();
+ private static readonly TestExtremeDefaultValues defaultInstance = new TestExtremeDefaultValues().MakeReadOnly();
private static readonly string[] _testExtremeDefaultValuesFieldNames = new string[] { "escaped_bytes", "inf_double", "inf_float", "large_float", "large_uint32", "large_uint64", "nan_double", "nan_float", "neg_inf_double", "neg_inf_float", "negative_float", "negative_one_float", "one_float", "small_float", "small_int32", "small_int64", "small_negative_float", "utf8_string", "zero_float" };
private static readonly uint[] _testExtremeDefaultValuesFieldTags = new uint[] { 10, 113, 141, 101, 16, 24, 129, 157, 121, 149, 93, 85, 69, 77, 32, 40, 109, 50, 61 };
public static TestExtremeDefaultValues DefaultInstance {
@@ -14607,7 +14715,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestExtremeDefaultValues DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestExtremeDefaultValues ThisMessage {
@@ -14983,6 +15091,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestExtremeDefaultValues ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestExtremeDefaultValues MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -14998,22 +15110,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestExtremeDefaultValues();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestExtremeDefaultValues cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestExtremeDefaultValues result;
+ private bool resultIsReadOnly;
+ private TestExtremeDefaultValues result;
private TestExtremeDefaultValues PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestExtremeDefaultValues original = result;
result = new TestExtremeDefaultValues();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -15028,13 +15140,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestExtremeDefaultValues();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -15050,11 +15162,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestExtremeDefaultValues BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -15651,7 +15763,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OneString : pb::GeneratedMessage<OneString, OneString.Builder> {
private OneString() { }
- private static readonly OneString defaultInstance = new Builder().BuildPartial();
+ private static readonly OneString defaultInstance = new OneString().MakeReadOnly();
private static readonly string[] _oneStringFieldNames = new string[] { "data" };
private static readonly uint[] _oneStringFieldTags = new uint[] { 10 };
public static OneString DefaultInstance {
@@ -15659,7 +15771,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OneString DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override OneString ThisMessage {
@@ -15745,6 +15857,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static OneString ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private OneString MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -15760,22 +15876,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new OneString();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(OneString cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- OneString result;
+ private bool resultIsReadOnly;
+ private OneString result;
private OneString PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
OneString original = result;
result = new OneString();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -15790,13 +15906,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new OneString();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -15812,11 +15928,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OneString BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -15922,7 +16038,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class OneBytes : pb::GeneratedMessage<OneBytes, OneBytes.Builder> {
private OneBytes() { }
- private static readonly OneBytes defaultInstance = new Builder().BuildPartial();
+ private static readonly OneBytes defaultInstance = new OneBytes().MakeReadOnly();
private static readonly string[] _oneBytesFieldNames = new string[] { "data" };
private static readonly uint[] _oneBytesFieldTags = new uint[] { 10 };
public static OneBytes DefaultInstance {
@@ -15930,7 +16046,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OneBytes DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override OneBytes ThisMessage {
@@ -16016,6 +16132,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static OneBytes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private OneBytes MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -16031,22 +16151,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new OneBytes();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(OneBytes cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- OneBytes result;
+ private bool resultIsReadOnly;
+ private OneBytes result;
private OneBytes PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
OneBytes original = result;
result = new OneBytes();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -16061,13 +16181,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new OneBytes();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -16083,11 +16203,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override OneBytes BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -16193,7 +16313,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestPackedTypes : pb::GeneratedMessage<TestPackedTypes, TestPackedTypes.Builder> {
private TestPackedTypes() { }
- private static readonly TestPackedTypes defaultInstance = new Builder().BuildPartial();
+ private static readonly TestPackedTypes defaultInstance = new TestPackedTypes().MakeReadOnly();
private static readonly string[] _testPackedTypesFieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };
private static readonly uint[] _testPackedTypesFieldTags = new uint[] { 818, 810, 826, 770, 778, 802, 722, 730, 786, 794, 754, 762, 738, 746 };
public static TestPackedTypes DefaultInstance {
@@ -16201,7 +16321,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedTypes DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestPackedTypes ThisMessage {
@@ -16644,6 +16764,24 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestPackedTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestPackedTypes MakeReadOnly() {
+ packedInt32_.MakeReadOnly();
+ packedInt64_.MakeReadOnly();
+ packedUint32_.MakeReadOnly();
+ packedUint64_.MakeReadOnly();
+ packedSint32_.MakeReadOnly();
+ packedSint64_.MakeReadOnly();
+ packedFixed32_.MakeReadOnly();
+ packedFixed64_.MakeReadOnly();
+ packedSfixed32_.MakeReadOnly();
+ packedSfixed64_.MakeReadOnly();
+ packedFloat_.MakeReadOnly();
+ packedDouble_.MakeReadOnly();
+ packedBool_.MakeReadOnly();
+ packedEnum_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -16659,22 +16797,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestPackedTypes();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestPackedTypes cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestPackedTypes result;
+ private bool resultIsReadOnly;
+ private TestPackedTypes result;
private TestPackedTypes PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestPackedTypes original = result;
result = new TestPackedTypes();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -16689,13 +16827,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestPackedTypes();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -16711,25 +16849,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedTypes BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.packedInt32_.MakeReadOnly();
- result.packedInt64_.MakeReadOnly();
- result.packedUint32_.MakeReadOnly();
- result.packedUint64_.MakeReadOnly();
- result.packedSint32_.MakeReadOnly();
- result.packedSint64_.MakeReadOnly();
- result.packedFixed32_.MakeReadOnly();
- result.packedFixed64_.MakeReadOnly();
- result.packedSfixed32_.MakeReadOnly();
- result.packedSfixed64_.MakeReadOnly();
- result.packedFloat_.MakeReadOnly();
- result.packedDouble_.MakeReadOnly();
- result.packedBool_.MakeReadOnly();
- result.packedEnum_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -17368,7 +17492,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestUnpackedTypes : pb::GeneratedMessage<TestUnpackedTypes, TestUnpackedTypes.Builder> {
private TestUnpackedTypes() { }
- private static readonly TestUnpackedTypes defaultInstance = new Builder().BuildPartial();
+ private static readonly TestUnpackedTypes defaultInstance = new TestUnpackedTypes().MakeReadOnly();
private static readonly string[] _testUnpackedTypesFieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };
private static readonly uint[] _testUnpackedTypesFieldTags = new uint[] { 816, 809, 824, 773, 777, 805, 720, 728, 789, 793, 752, 760, 736, 744 };
public static TestUnpackedTypes DefaultInstance {
@@ -17376,7 +17500,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedTypes DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestUnpackedTypes ThisMessage {
@@ -17764,6 +17888,24 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestUnpackedTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestUnpackedTypes MakeReadOnly() {
+ unpackedInt32_.MakeReadOnly();
+ unpackedInt64_.MakeReadOnly();
+ unpackedUint32_.MakeReadOnly();
+ unpackedUint64_.MakeReadOnly();
+ unpackedSint32_.MakeReadOnly();
+ unpackedSint64_.MakeReadOnly();
+ unpackedFixed32_.MakeReadOnly();
+ unpackedFixed64_.MakeReadOnly();
+ unpackedSfixed32_.MakeReadOnly();
+ unpackedSfixed64_.MakeReadOnly();
+ unpackedFloat_.MakeReadOnly();
+ unpackedDouble_.MakeReadOnly();
+ unpackedBool_.MakeReadOnly();
+ unpackedEnum_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -17779,22 +17921,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestUnpackedTypes();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestUnpackedTypes cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestUnpackedTypes result;
+ private bool resultIsReadOnly;
+ private TestUnpackedTypes result;
private TestUnpackedTypes PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestUnpackedTypes original = result;
result = new TestUnpackedTypes();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -17809,13 +17951,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestUnpackedTypes();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -17831,25 +17973,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedTypes BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.unpackedInt32_.MakeReadOnly();
- result.unpackedInt64_.MakeReadOnly();
- result.unpackedUint32_.MakeReadOnly();
- result.unpackedUint64_.MakeReadOnly();
- result.unpackedSint32_.MakeReadOnly();
- result.unpackedSint64_.MakeReadOnly();
- result.unpackedFixed32_.MakeReadOnly();
- result.unpackedFixed64_.MakeReadOnly();
- result.unpackedSfixed32_.MakeReadOnly();
- result.unpackedSfixed64_.MakeReadOnly();
- result.unpackedFloat_.MakeReadOnly();
- result.unpackedDouble_.MakeReadOnly();
- result.unpackedBool_.MakeReadOnly();
- result.unpackedEnum_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -18488,7 +18616,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestPackedExtensions : pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder> {
private TestPackedExtensions() { }
- private static readonly TestPackedExtensions defaultInstance = new Builder().BuildPartial();
+ private static readonly TestPackedExtensions defaultInstance = new TestPackedExtensions().MakeReadOnly();
private static readonly string[] _testPackedExtensionsFieldNames = new string[] { };
private static readonly uint[] _testPackedExtensionsFieldTags = new uint[] { };
public static TestPackedExtensions DefaultInstance {
@@ -18496,7 +18624,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedExtensions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestPackedExtensions ThisMessage {
@@ -18570,6 +18698,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestPackedExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestPackedExtensions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -18585,22 +18717,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestPackedExtensions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestPackedExtensions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestPackedExtensions result;
+ private bool resultIsReadOnly;
+ private TestPackedExtensions result;
private TestPackedExtensions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestPackedExtensions original = result;
result = new TestPackedExtensions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -18615,13 +18747,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestPackedExtensions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -18637,11 +18769,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestPackedExtensions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -18720,7 +18852,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestUnpackedExtensions : pb::ExtendableMessage<TestUnpackedExtensions, TestUnpackedExtensions.Builder> {
private TestUnpackedExtensions() { }
- private static readonly TestUnpackedExtensions defaultInstance = new Builder().BuildPartial();
+ private static readonly TestUnpackedExtensions defaultInstance = new TestUnpackedExtensions().MakeReadOnly();
private static readonly string[] _testUnpackedExtensionsFieldNames = new string[] { };
private static readonly uint[] _testUnpackedExtensionsFieldTags = new uint[] { };
public static TestUnpackedExtensions DefaultInstance {
@@ -18728,7 +18860,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedExtensions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestUnpackedExtensions ThisMessage {
@@ -18802,6 +18934,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestUnpackedExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestUnpackedExtensions MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -18817,22 +18953,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestUnpackedExtensions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestUnpackedExtensions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestUnpackedExtensions result;
+ private bool resultIsReadOnly;
+ private TestUnpackedExtensions result;
private TestUnpackedExtensions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestUnpackedExtensions original = result;
result = new TestUnpackedExtensions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -18847,13 +18983,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestUnpackedExtensions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -18869,11 +19005,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestUnpackedExtensions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -18952,7 +19088,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestDynamicExtensions : pb::GeneratedMessage<TestDynamicExtensions, TestDynamicExtensions.Builder> {
private TestDynamicExtensions() { }
- private static readonly TestDynamicExtensions defaultInstance = new Builder().BuildPartial();
+ private static readonly TestDynamicExtensions defaultInstance = new TestDynamicExtensions().MakeReadOnly();
private static readonly string[] _testDynamicExtensionsFieldNames = new string[] { "dynamic_enum_extension", "dynamic_message_extension", "enum_extension", "message_extension", "packed_extension", "repeated_extension", "scalar_extension" };
private static readonly uint[] _testDynamicExtensionsFieldTags = new uint[] { 16016, 16034, 16008, 16026, 16050, 16042, 16005 };
public static TestDynamicExtensions DefaultInstance {
@@ -18960,7 +19096,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDynamicExtensions DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestDynamicExtensions ThisMessage {
@@ -18993,7 +19129,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class DynamicMessageType : pb::GeneratedMessage<DynamicMessageType, DynamicMessageType.Builder> {
private DynamicMessageType() { }
- private static readonly DynamicMessageType defaultInstance = new Builder().BuildPartial();
+ private static readonly DynamicMessageType defaultInstance = new DynamicMessageType().MakeReadOnly();
private static readonly string[] _dynamicMessageTypeFieldNames = new string[] { "dynamic_field" };
private static readonly uint[] _dynamicMessageTypeFieldTags = new uint[] { 16800 };
public static DynamicMessageType DefaultInstance {
@@ -19001,7 +19137,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override DynamicMessageType DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override DynamicMessageType ThisMessage {
@@ -19087,6 +19223,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static DynamicMessageType ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private DynamicMessageType MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -19102,22 +19242,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new DynamicMessageType();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(DynamicMessageType cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- DynamicMessageType result;
+ private bool resultIsReadOnly;
+ private DynamicMessageType result;
private DynamicMessageType PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
DynamicMessageType original = result;
result = new DynamicMessageType();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -19132,13 +19272,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new DynamicMessageType();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -19154,11 +19294,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override DynamicMessageType BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -19294,22 +19434,22 @@ namespace Google.ProtocolBuffers.TestProtos {
public const int MessageExtensionFieldNumber = 2003;
private bool hasMessageExtension;
- private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageExtension_;
public bool HasMessageExtension {
get { return hasMessageExtension; }
}
public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
- get { return messageExtension_; }
+ get { return messageExtension_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
}
public const int DynamicMessageExtensionFieldNumber = 2004;
private bool hasDynamicMessageExtension;
- private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType dynamicMessageExtension_;
public bool HasDynamicMessageExtension {
get { return hasDynamicMessageExtension; }
}
public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
- get { return dynamicMessageExtension_; }
+ get { return dynamicMessageExtension_ ?? global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance; }
}
public const int RepeatedExtensionFieldNumber = 2005;
@@ -19447,6 +19587,12 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestDynamicExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestDynamicExtensions MakeReadOnly() {
+ repeatedExtension_.MakeReadOnly();
+ packedExtension_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -19462,22 +19608,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestDynamicExtensions();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestDynamicExtensions cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestDynamicExtensions result;
+ private bool resultIsReadOnly;
+ private TestDynamicExtensions result;
private TestDynamicExtensions PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestDynamicExtensions original = result;
result = new TestDynamicExtensions();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -19492,13 +19638,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestDynamicExtensions();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -19514,13 +19660,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestDynamicExtensions BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedExtension_.MakeReadOnly();
- result.packedExtension_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -19762,7 +19906,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearMessageExtension() {
PrepareBuilder();
result.hasMessageExtension = false;
- result.messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ result.messageExtension_ = null;
return this;
}
@@ -19802,7 +19946,7 @@ namespace Google.ProtocolBuffers.TestProtos {
public Builder ClearDynamicMessageExtension() {
PrepareBuilder();
result.hasDynamicMessageExtension = false;
- result.dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance;
+ result.dynamicMessageExtension_ = null;
return this;
}
@@ -19878,7 +20022,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::GeneratedMessage<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> {
private TestRepeatedScalarDifferentTagSizes() { }
- private static readonly TestRepeatedScalarDifferentTagSizes defaultInstance = new Builder().BuildPartial();
+ private static readonly TestRepeatedScalarDifferentTagSizes defaultInstance = new TestRepeatedScalarDifferentTagSizes().MakeReadOnly();
private static readonly string[] _testRepeatedScalarDifferentTagSizesFieldNames = new string[] { "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_int32", "repeated_int64", "repeated_uint64" };
private static readonly uint[] _testRepeatedScalarDifferentTagSizesFieldTags = new uint[] { 101, 16369, 2097141, 104, 16376, 2097144 };
public static TestRepeatedScalarDifferentTagSizes DefaultInstance {
@@ -19886,7 +20030,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override TestRepeatedScalarDifferentTagSizes ThisMessage {
@@ -20094,6 +20238,16 @@ namespace Google.ProtocolBuffers.TestProtos {
public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private TestRepeatedScalarDifferentTagSizes MakeReadOnly() {
+ repeatedFixed32_.MakeReadOnly();
+ repeatedInt32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -20109,22 +20263,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new TestRepeatedScalarDifferentTagSizes();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(TestRepeatedScalarDifferentTagSizes cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- TestRepeatedScalarDifferentTagSizes result;
+ private bool resultIsReadOnly;
+ private TestRepeatedScalarDifferentTagSizes result;
private TestRepeatedScalarDifferentTagSizes PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
TestRepeatedScalarDifferentTagSizes original = result;
result = new TestRepeatedScalarDifferentTagSizes();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -20139,13 +20293,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new TestRepeatedScalarDifferentTagSizes();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -20161,17 +20315,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override TestRepeatedScalarDifferentTagSizes BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- result.repeatedFixed32_.MakeReadOnly();
- result.repeatedInt32_.MakeReadOnly();
- result.repeatedFixed64_.MakeReadOnly();
- result.repeatedInt64_.MakeReadOnly();
- result.repeatedFloat_.MakeReadOnly();
- result.repeatedUint64_.MakeReadOnly();
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -20492,7 +20640,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class FooRequest : pb::GeneratedMessage<FooRequest, FooRequest.Builder> {
private FooRequest() { }
- private static readonly FooRequest defaultInstance = new Builder().BuildPartial();
+ private static readonly FooRequest defaultInstance = new FooRequest().MakeReadOnly();
private static readonly string[] _fooRequestFieldNames = new string[] { };
private static readonly uint[] _fooRequestFieldTags = new uint[] { };
public static FooRequest DefaultInstance {
@@ -20500,7 +20648,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override FooRequest DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override FooRequest ThisMessage {
@@ -20570,6 +20718,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static FooRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private FooRequest MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -20585,22 +20737,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new FooRequest();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(FooRequest cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- FooRequest result;
+ private bool resultIsReadOnly;
+ private FooRequest result;
private FooRequest PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
FooRequest original = result;
result = new FooRequest();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -20615,13 +20767,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new FooRequest();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -20637,11 +20789,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override FooRequest BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -20719,7 +20871,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class FooResponse : pb::GeneratedMessage<FooResponse, FooResponse.Builder> {
private FooResponse() { }
- private static readonly FooResponse defaultInstance = new Builder().BuildPartial();
+ private static readonly FooResponse defaultInstance = new FooResponse().MakeReadOnly();
private static readonly string[] _fooResponseFieldNames = new string[] { };
private static readonly uint[] _fooResponseFieldTags = new uint[] { };
public static FooResponse DefaultInstance {
@@ -20727,7 +20879,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override FooResponse DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override FooResponse ThisMessage {
@@ -20797,6 +20949,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static FooResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private FooResponse MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -20812,22 +20968,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new FooResponse();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(FooResponse cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- FooResponse result;
+ private bool resultIsReadOnly;
+ private FooResponse result;
private FooResponse PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
FooResponse original = result;
result = new FooResponse();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -20842,13 +20998,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new FooResponse();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -20864,11 +21020,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override FooResponse BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -20946,7 +21102,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class BarRequest : pb::GeneratedMessage<BarRequest, BarRequest.Builder> {
private BarRequest() { }
- private static readonly BarRequest defaultInstance = new Builder().BuildPartial();
+ private static readonly BarRequest defaultInstance = new BarRequest().MakeReadOnly();
private static readonly string[] _barRequestFieldNames = new string[] { };
private static readonly uint[] _barRequestFieldTags = new uint[] { };
public static BarRequest DefaultInstance {
@@ -20954,7 +21110,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override BarRequest DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override BarRequest ThisMessage {
@@ -21024,6 +21180,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static BarRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private BarRequest MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -21039,22 +21199,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new BarRequest();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(BarRequest cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- BarRequest result;
+ private bool resultIsReadOnly;
+ private BarRequest result;
private BarRequest PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
BarRequest original = result;
result = new BarRequest();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -21069,13 +21229,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new BarRequest();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -21091,11 +21251,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override BarRequest BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {
@@ -21173,7 +21333,7 @@ namespace Google.ProtocolBuffers.TestProtos {
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("ProtoGen", "2.3.0.277")]
public sealed partial class BarResponse : pb::GeneratedMessage<BarResponse, BarResponse.Builder> {
private BarResponse() { }
- private static readonly BarResponse defaultInstance = new Builder().BuildPartial();
+ private static readonly BarResponse defaultInstance = new BarResponse().MakeReadOnly();
private static readonly string[] _barResponseFieldNames = new string[] { };
private static readonly uint[] _barResponseFieldTags = new uint[] { };
public static BarResponse DefaultInstance {
@@ -21181,7 +21341,7 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override BarResponse DefaultInstanceForType {
- get { return defaultInstance; }
+ get { return DefaultInstance; }
}
protected override BarResponse ThisMessage {
@@ -21251,6 +21411,10 @@ namespace Google.ProtocolBuffers.TestProtos {
public static BarResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
}
+ private BarResponse MakeReadOnly() {
+ return this;
+ }
+
public static Builder CreateBuilder() { return new Builder(); }
public override Builder ToBuilder() { return CreateBuilder(this); }
public override Builder CreateBuilderForType() { return new Builder(); }
@@ -21266,22 +21430,22 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return this; }
}
public Builder() {
- result = DefaultInstance ?? new BarResponse();
- builderIsReadOnly = result == DefaultInstance;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
}
internal Builder(BarResponse cloneFrom) {
result = cloneFrom;
- builderIsReadOnly = true;
+ resultIsReadOnly = true;
}
- bool builderIsReadOnly;
- BarResponse result;
+ private bool resultIsReadOnly;
+ private BarResponse result;
private BarResponse PrepareBuilder() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
BarResponse original = result;
result = new BarResponse();
- builderIsReadOnly = false;
+ resultIsReadOnly = false;
MergeFrom(original);
}
return result;
@@ -21296,13 +21460,13 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override Builder Clear() {
- result = DefaultInstance ?? new BarResponse();
- builderIsReadOnly = true;
+ result = DefaultInstance;
+ resultIsReadOnly = true;
return this;
}
public override Builder Clone() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return new Builder(result);
} else {
return new Builder().MergeFrom(result);
@@ -21318,11 +21482,11 @@ namespace Google.ProtocolBuffers.TestProtos {
}
public override BarResponse BuildPartial() {
- if (builderIsReadOnly) {
+ if (resultIsReadOnly) {
return result;
}
- builderIsReadOnly = true;
- return result;
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
}
public override Builder MergeFrom(pb::IMessage other) {