diff options
Diffstat (limited to 'csharp/src/ProtocolBuffers')
-rw-r--r-- | csharp/src/ProtocolBuffers/CodedOutputStream.cs | 73 |
1 files changed, 64 insertions, 9 deletions
diff --git a/csharp/src/ProtocolBuffers/CodedOutputStream.cs b/csharp/src/ProtocolBuffers/CodedOutputStream.cs index 132f8067..dfcaf8a2 100644 --- a/csharp/src/ProtocolBuffers/CodedOutputStream.cs +++ b/csharp/src/ProtocolBuffers/CodedOutputStream.cs @@ -543,19 +543,14 @@ namespace Google.Protobuf #endregion
#region Write array members
- public void WriteGroupArray<T>(int fieldNumber, RepeatedField<T> list)
+ public void WriteMessageArray<T>(int fieldNumber, RepeatedField<T> list)
where T : IMessage
{
- foreach (IMessage value in list)
+ if (list.Count == 0)
{
- WriteGroup(fieldNumber, value);
+ return;
}
- }
-
- public void WriteMessageArray<T>(int fieldNumber, RepeatedField<T> list)
- where T : IMessage
- {
- foreach (IMessage value in list)
+ foreach (T value in list)
{
WriteMessage(fieldNumber, value);
}
@@ -563,6 +558,10 @@ namespace Google.Protobuf public void WriteStringArray(int fieldNumber, RepeatedField<string> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteString(fieldNumber, value);
@@ -571,6 +570,10 @@ namespace Google.Protobuf public void WriteBytesArray(int fieldNumber, RepeatedField<ByteString> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteBytes(fieldNumber, value);
@@ -579,6 +582,10 @@ namespace Google.Protobuf public void WriteBoolArray(int fieldNumber, RepeatedField<bool> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteBool(fieldNumber, value);
@@ -587,6 +594,10 @@ namespace Google.Protobuf public void WriteInt32Array(int fieldNumber, RepeatedField<int> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteInt32(fieldNumber, value);
@@ -595,6 +606,10 @@ namespace Google.Protobuf public void WriteSInt32Array(int fieldNumber, RepeatedField<int> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteSInt32(fieldNumber, value);
@@ -603,6 +618,10 @@ namespace Google.Protobuf public void WriteUInt32Array(int fieldNumber, RepeatedField<uint> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteUInt32(fieldNumber, value);
@@ -611,6 +630,10 @@ namespace Google.Protobuf public void WriteFixed32Array(int fieldNumber, RepeatedField<uint> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteFixed32(fieldNumber, value);
@@ -619,6 +642,10 @@ namespace Google.Protobuf public void WriteSFixed32Array(int fieldNumber, RepeatedField<int> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteSFixed32(fieldNumber, value);
@@ -627,6 +654,10 @@ namespace Google.Protobuf public void WriteInt64Array(int fieldNumber, RepeatedField<long> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteInt64(fieldNumber, value);
@@ -635,6 +666,10 @@ namespace Google.Protobuf public void WriteSInt64Array(int fieldNumber, RepeatedField<long> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteSInt64(fieldNumber, value);
@@ -643,6 +678,10 @@ namespace Google.Protobuf public void WriteUInt64Array(int fieldNumber, RepeatedField<ulong> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteUInt64(fieldNumber, value);
@@ -651,6 +690,10 @@ namespace Google.Protobuf public void WriteFixed64Array(int fieldNumber, RepeatedField<ulong> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteFixed64(fieldNumber, value);
@@ -659,6 +702,10 @@ namespace Google.Protobuf public void WriteSFixed64Array(int fieldNumber, RepeatedField<long> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteSFixed64(fieldNumber, value);
@@ -667,6 +714,10 @@ namespace Google.Protobuf public void WriteDoubleArray(int fieldNumber, RepeatedField<double> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteDouble(fieldNumber, value);
@@ -675,6 +726,10 @@ namespace Google.Protobuf public void WriteFloatArray(int fieldNumber, RepeatedField<float> list)
{
+ if (list.Count == 0)
+ {
+ return;
+ }
foreach (var value in list)
{
WriteFloat(fieldNumber, value);
|