Added the field name to all CodedOutputStream.Write??? calls
Refactored 'speed' generated write of arrays to call Write???Array. This may
have impacted speed write speeds for arrays of non-reference types due to the
use of non-generic IEnumerable and the subsequent boxing of value types. This
could be addressed later if desired.
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs
index 0727cad..9119fdb 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestXmlSerializerTestProtoFile.cs
@@ -180,12 +180,10 @@
public override void WriteTo(pb::CodedOutputStream output) {
int size = SerializedSize;
if (options_.Count > 0) {
- foreach (int element in options_) {
- output.WriteEnum(3, element);
- }
+ output.WriteArray(pbd::FieldType.Enum, 3, "options", options_);
}
if (HasBinary) {
- output.WriteBytes(4, Binary);
+ output.WriteBytes(4, "binary", Binary);
}
UnknownFields.WriteTo(output);
}
@@ -681,12 +679,10 @@
public override void WriteTo(pb::CodedOutputStream output) {
int size = SerializedSize;
if (options_.Count > 0) {
- foreach (int element in options_) {
- output.WriteEnum(3, element);
- }
+ output.WriteArray(pbd::FieldType.Enum, 3, "options", options_);
}
if (HasBinary) {
- output.WriteBytes(4, Binary);
+ output.WriteBytes(4, "binary", Binary);
}
UnknownFields.WriteTo(output);
}
@@ -1006,30 +1002,26 @@
int size = SerializedSize;
pb::ExtendableMessage<TestXmlMessage, TestXmlMessage.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
if (HasChild) {
- output.WriteMessage(1, Child);
+ output.WriteMessage(1, "child", Child);
}
if (numbers_.Count > 0) {
- foreach (int element in numbers_) {
- output.WriteInt32(2, element);
- }
+ output.WriteArray(pbd::FieldType.Int32, 2, "numbers", numbers_);
}
if (HasText) {
- output.WriteString(3, Text);
+ output.WriteString(3, "text", Text);
}
if (HasValid) {
- output.WriteBool(5, Valid);
+ output.WriteBool(5, "valid", Valid);
}
if (HasNumber) {
- output.WriteInt64(6, Number);
+ output.WriteInt64(6, "number", Number);
}
extensionWriter.WriteUntil(200, output);
- foreach (global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children element in ChildrenList) {
- output.WriteGroup(401, element);
+ if (children_.Count > 0) {
+ output.WriteGroupArray(401, "children", children_);
}
if (textlines_.Count > 0) {
- foreach (string element in textlines_) {
- output.WriteString(700, element);
- }
+ output.WriteArray(pbd::FieldType.String, 700, "textlines", textlines_);
}
UnknownFields.WriteTo(output);
}
@@ -1498,7 +1490,7 @@
public override void WriteTo(pb::CodedOutputStream output) {
int size = SerializedSize;
if (HasNumber) {
- output.WriteInt32(1, Number);
+ output.WriteInt32(1, "number", Number);
}
UnknownFields.WriteTo(output);
}