Commit 71c492da authored by Sydney Acksman's avatar Sydney Acksman

Add some missing null-checks

Remove IsInitialized checks accidentally left in MessageParser
Simplify ExtensionCollection.CrossLink
parent 3cae8677
...@@ -89,7 +89,7 @@ namespace Google.Protobuf ...@@ -89,7 +89,7 @@ namespace Google.Protobuf
private CodedOutputStream(byte[] buffer, int offset, int length) private CodedOutputStream(byte[] buffer, int offset, int length)
{ {
this.output = null; this.output = null;
this.buffer = buffer; this.buffer = ProtoPreconditions.CheckNotNull(buffer, nameof(buffer));
this.position = offset; this.position = offset;
this.limit = offset + length; this.limit = offset + length;
leaveOpen = true; // Simple way of avoiding trying to dispose of a null reference leaveOpen = true; // Simple way of avoiding trying to dispose of a null reference
......
...@@ -133,7 +133,7 @@ namespace Google.Protobuf ...@@ -133,7 +133,7 @@ namespace Google.Protobuf
/// <param name="settings">The settings.</param> /// <param name="settings">The settings.</param>
public JsonFormatter(Settings settings) public JsonFormatter(Settings settings)
{ {
this.settings = settings; this.settings = ProtoPreconditions.CheckNotNull(settings, nameof(settings));
} }
/// <summary> /// <summary>
......
...@@ -110,7 +110,7 @@ namespace Google.Protobuf ...@@ -110,7 +110,7 @@ namespace Google.Protobuf
/// <param name="settings">The settings.</param> /// <param name="settings">The settings.</param>
public JsonParser(Settings settings) public JsonParser(Settings settings)
{ {
this.settings = settings; this.settings = ProtoPreconditions.CheckNotNull(settings, nameof(settings));
} }
/// <summary> /// <summary>
......
...@@ -72,7 +72,6 @@ namespace Google.Protobuf ...@@ -72,7 +72,6 @@ namespace Google.Protobuf
{ {
IMessage message = factory(); IMessage message = factory();
message.MergeFrom(data, DiscardUnknownFields, Extensions); message.MergeFrom(data, DiscardUnknownFields, Extensions);
CheckMergedRequiredFields(message);
return message; return message;
} }
...@@ -87,7 +86,6 @@ namespace Google.Protobuf ...@@ -87,7 +86,6 @@ namespace Google.Protobuf
{ {
IMessage message = factory(); IMessage message = factory();
message.MergeFrom(data, offset, length, DiscardUnknownFields, Extensions); message.MergeFrom(data, offset, length, DiscardUnknownFields, Extensions);
CheckMergedRequiredFields(message);
return message; return message;
} }
...@@ -100,7 +98,6 @@ namespace Google.Protobuf ...@@ -100,7 +98,6 @@ namespace Google.Protobuf
{ {
IMessage message = factory(); IMessage message = factory();
message.MergeFrom(data, DiscardUnknownFields, Extensions); message.MergeFrom(data, DiscardUnknownFields, Extensions);
CheckMergedRequiredFields(message);
return message; return message;
} }
...@@ -113,7 +110,6 @@ namespace Google.Protobuf ...@@ -113,7 +110,6 @@ namespace Google.Protobuf
{ {
IMessage message = factory(); IMessage message = factory();
message.MergeFrom(input, DiscardUnknownFields, Extensions); message.MergeFrom(input, DiscardUnknownFields, Extensions);
CheckMergedRequiredFields(message);
return message; return message;
} }
...@@ -130,7 +126,6 @@ namespace Google.Protobuf ...@@ -130,7 +126,6 @@ namespace Google.Protobuf
{ {
IMessage message = factory(); IMessage message = factory();
message.MergeDelimitedFrom(input, DiscardUnknownFields, Extensions); message.MergeDelimitedFrom(input, DiscardUnknownFields, Extensions);
CheckMergedRequiredFields(message);
return message; return message;
} }
...@@ -143,7 +138,6 @@ namespace Google.Protobuf ...@@ -143,7 +138,6 @@ namespace Google.Protobuf
{ {
IMessage message = factory(); IMessage message = factory();
MergeFrom(message, input); MergeFrom(message, input);
CheckMergedRequiredFields(message);
return message; return message;
} }
...@@ -176,12 +170,6 @@ namespace Google.Protobuf ...@@ -176,12 +170,6 @@ namespace Google.Protobuf
} }
} }
internal static void CheckMergedRequiredFields(IMessage message)
{
if (!message.IsInitialized())
throw new InvalidOperationException("Parsed message does not contain all required fields");
}
/// <summary> /// <summary>
/// Creates a new message parser which optionally discards unknown fields when parsing. /// Creates a new message parser which optionally discards unknown fields when parsing.
/// </summary> /// </summary>
......
...@@ -107,13 +107,11 @@ namespace Google.Protobuf.Reflection ...@@ -107,13 +107,11 @@ namespace Google.Protobuf.Reflection
{ {
descriptor.CrossLink(); descriptor.CrossLink();
IList<FieldDescriptor> _; IList<FieldDescriptor> list;
if (!declarationOrder.TryGetValue(descriptor.ExtendeeType, out _)) if (!declarationOrder.TryGetValue(descriptor.ExtendeeType, out list))
{ declarationOrder.Add(descriptor.ExtendeeType, list = new List<FieldDescriptor>());
declarationOrder.Add(descriptor.ExtendeeType, new List<FieldDescriptor>());
}
declarationOrder[descriptor.ExtendeeType].Add(descriptor); list.Add(descriptor);
} }
extensionsByTypeInDeclarationOrder = declarationOrder extensionsByTypeInDeclarationOrder = declarationOrder
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment