diff options
author | Jon Skeet <skeet@pobox.com> | 2009-09-06 20:22:34 +0100 |
---|---|---|
committer | Jon Skeet <skeet@pobox.com> | 2009-09-06 20:22:34 +0100 |
commit | 1872d080f709cdcae92cfbd5fae074cd30b0a070 (patch) | |
tree | 64618796d0c2dc51c0b589b6d004041f2e11252a /src/ProtoGen | |
parent | ad74853e0c0b4beaf450123ea763aa8a6bde4cdd (diff) | |
download | protobuf-1872d080f709cdcae92cfbd5fae074cd30b0a070.tar.gz protobuf-1872d080f709cdcae92cfbd5fae074cd30b0a070.tar.bz2 protobuf-1872d080f709cdcae92cfbd5fae074cd30b0a070.zip |
Fixed bug spotted by danielr
Diffstat (limited to 'src/ProtoGen')
-rw-r--r-- | src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs index 8caa953a..b3f5d7b4 100644 --- a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs +++ b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs @@ -155,8 +155,9 @@ namespace Google.ProtocolBuffers.ProtoGen { writer.WriteLine("size += dataSize;"); int tagSize = CodedOutputStream.ComputeTagSize(Descriptor.FieldNumber); if (Descriptor.IsPacked) { - writer.WriteLine("size += {0};", tagSize); - writer.WriteLine("size += pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);"); + writer.WriteLine("if ({0}_.Count != 0) {{", Name); + writer.WriteLine(" size += {0} + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);", tagSize); + writer.WriteLine("}"); } else { writer.WriteLine("size += {0} * {1}_.Count;", tagSize, Name); } |