Avoid creating UnknownFieldSets unless we really have to.
diff --git a/src/ProtocolBuffers/GeneratedBuilder.cs b/src/ProtocolBuffers/GeneratedBuilder.cs
index c678d66..c3543be 100644
--- a/src/ProtocolBuffers/GeneratedBuilder.cs
+++ b/src/ProtocolBuffers/GeneratedBuilder.cs
@@ -158,10 +158,12 @@
}
public override TBuilder MergeUnknownFields(UnknownFieldSet unknownFields) {
- TMessage result = MessageBeingBuilt;
- result.SetUnknownFields(UnknownFieldSet.CreateBuilder(result.UnknownFields)
- .MergeFrom(unknownFields)
- .Build());
+ if (unknownFields != UnknownFieldSet.DefaultInstance) {
+ TMessage result = MessageBeingBuilt;
+ result.SetUnknownFields(UnknownFieldSet.CreateBuilder(result.UnknownFields)
+ .MergeFrom(unknownFields)
+ .Build());
+ }
return ThisBuilder;
}