aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffers/DynamicMessage.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ProtocolBuffers/DynamicMessage.cs')
-rw-r--r--src/ProtocolBuffers/DynamicMessage.cs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/ProtocolBuffers/DynamicMessage.cs b/src/ProtocolBuffers/DynamicMessage.cs
index 4b3a4060..16a7f319 100644
--- a/src/ProtocolBuffers/DynamicMessage.cs
+++ b/src/ProtocolBuffers/DynamicMessage.cs
@@ -296,7 +296,7 @@ namespace Google.ProtocolBuffers {
}
public override DynamicMessage Build() {
- if (!IsInitialized) {
+ if (fields != null && !IsInitialized) {
throw new UninitializedMessageException(new DynamicMessage(type, fields, unknownFields));
}
return BuildPartial();
@@ -315,6 +315,9 @@ namespace Google.ProtocolBuffers {
}
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;