New tests, double build errors, and a few miscellaneous fixes
diff --git a/src/ProtocolBuffers/DynamicMessage.cs b/src/ProtocolBuffers/DynamicMessage.cs
index 4b3a406..16a7f31 100644
--- a/src/ProtocolBuffers/DynamicMessage.cs
+++ b/src/ProtocolBuffers/DynamicMessage.cs
@@ -296,7 +296,7 @@
}
public override DynamicMessage Build() {
- if (!IsInitialized) {
+ if (fields != null && !IsInitialized) {
throw new UninitializedMessageException(new DynamicMessage(type, fields, unknownFields));
}
return BuildPartial();
@@ -315,6 +315,9 @@
}
public override DynamicMessage BuildPartial() {
+ if (fields == null) {
+ throw new InvalidOperationException("Build() has already been called on this Builder.");
+ }
fields.MakeImmutable();
DynamicMessage result = new DynamicMessage(type, fields, unknownFields);
fields = null;