Commit 461f94b6 authored by Sydney Acksman's avatar Sydney Acksman

Add length checks to ExtensionCollection

parent 6d4e7fd7
...@@ -48,14 +48,32 @@ namespace Google.Protobuf.Reflection ...@@ -48,14 +48,32 @@ namespace Google.Protobuf.Reflection
{ {
UnorderedExtensions = DescriptorUtil.ConvertAndMakeReadOnly( UnorderedExtensions = DescriptorUtil.ConvertAndMakeReadOnly(
file.Proto.Extension, file.Proto.Extension,
(extension, i) => new FieldDescriptor(extension, file, null, i, null, extensions?[i])); (extension, i) => {
if (extensions?.Length != 0)
{
return new FieldDescriptor(extension, file, null, i, null, extensions?[i]);
}
else
{
return new FieldDescriptor(extension, file, null, i, null, null); // return null if there's no extensions in this array for old code-gen
}
});
} }
internal ExtensionCollection(MessageDescriptor message, Extension[] extensions) internal ExtensionCollection(MessageDescriptor message, Extension[] extensions)
{ {
UnorderedExtensions = DescriptorUtil.ConvertAndMakeReadOnly( UnorderedExtensions = DescriptorUtil.ConvertAndMakeReadOnly(
message.Proto.Extension, message.Proto.Extension,
(extension, i) => new FieldDescriptor(extension, message.File, message, i, null, extensions?[i])); (extension, i) => {
if (extensions?.Length != 0)
{
return new FieldDescriptor(extension, message.File, message, i, null, extensions?[i]);
}
else
{
return new FieldDescriptor(extension, message.File, message, i, null, null);
}
});
} }
/// <summary> /// <summary>
......
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