Skip to content

Commit b2a7a8e

Browse files
Avoid List allocation in ValidationEndpointFilterFactory when no validatable parameters
Co-authored-by: BrennanConroy <7574801+BrennanConroy@users.noreply.github.com>
1 parent 8ddca5e commit b2a7a8e

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/Http/Routing/src/ValidationEndpointFilterFactory.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static EndpointFilterDelegate Create(EndpointFilterFactoryContext context
2929
var serviceProviderIsService = context.ApplicationServices.GetService<IServiceProviderIsService>();
3030

3131
// Use a list to only store validatable parameters instead of arrays for all parameters
32-
var validatableParameters = new List<ValidatableParameterEntry>();
32+
List<ValidatableParameterEntry>? validatableParameters = null;
3333

3434
for (var i = 0; i < parameters.Length; i++)
3535
{
@@ -41,14 +41,15 @@ public static EndpointFilterDelegate Create(EndpointFilterFactoryContext context
4141

4242
if (options.TryGetValidatableParameterInfo(parameters[i], out var validatableParameter))
4343
{
44+
validatableParameters ??= new();
4445
validatableParameters.Add(new ValidatableParameterEntry(
4546
i,
4647
validatableParameter,
4748
GetDisplayName(parameters[i])));
4849
}
4950
}
5051

51-
if (validatableParameters.Count == 0)
52+
if (validatableParameters is null || validatableParameters.Count == 0)
5253
{
5354
return next;
5455
}

0 commit comments

Comments
 (0)