aboutsummaryrefslogtreecommitdiff
path: root/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs')
-rw-r--r--src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
index b7fe19b3..64b95e1a 100644
--- a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
+++ b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
@@ -141,19 +141,23 @@ namespace Google.ProtocolBuffers.ProtoGen
writer.WriteLine("if ({0}_.Count > 0) {{", Name);
writer.Indent();
if (Descriptor.IsPacked)
- {
- writer.WriteLine("output.WriteRawVarint32({0});", WireFormat.MakeTag(Descriptor));
- writer.WriteLine("output.WriteRawVarint32((uint) {0}MemoizedSerializedSize);", Name);
- writer.WriteLine("foreach ({0} element in {1}_) {{", TypeName, Name);
- writer.WriteLine(" output.Write{0}NoTag(element);", CapitalizedTypeName);
- writer.WriteLine("}");
- }
+ writer.WriteLine("output.WritePackedArray(pbd::FieldType.{3}, {0}, \"{2}\", {1}MemoizedSerializedSize, {1}_);", Number, Name, Descriptor.Name, Descriptor.FieldType);
else
- {
- writer.WriteLine("foreach ({0} element in {1}_) {{", TypeName, Name);
- writer.WriteLine(" output.Write{0}({1}, element);", CapitalizedTypeName, Number);
- writer.WriteLine("}");
- }
+ writer.WriteLine("output.WriteArray(pbd::FieldType.{3}, {0}, \"{2}\", {1}_);", Number, Name, Descriptor.Name, Descriptor.FieldType);
+ //if (Descriptor.IsPacked)
+ //{
+ // writer.WriteLine("output.WriteRawVarint32({0});", WireFormat.MakeTag(Descriptor));
+ // writer.WriteLine("output.WriteRawVarint32((uint) {0}MemoizedSerializedSize);", Name);
+ // writer.WriteLine("foreach ({0} element in {1}_) {{", TypeName, Name);
+ // writer.WriteLine(" output.Write{0}NoTag(element);", CapitalizedTypeName);
+ // writer.WriteLine("}");
+ //}
+ //else
+ //{
+ // writer.WriteLine("foreach ({0} element in {1}_) {{", TypeName, Name);
+ // writer.WriteLine(" output.Write{0}({1}, element);", CapitalizedTypeName, Number);
+ // writer.WriteLine("}");
+ //}
writer.Outdent();
writer.WriteLine("}");
}