diff --git a/src/ImageSharp/Advanced/ParallelRowIterator.cs b/src/ImageSharp/Advanced/ParallelRowIterator.cs index 98c2656d11..f404326bce 100644 --- a/src/ImageSharp/Advanced/ParallelRowIterator.cs +++ b/src/ImageSharp/Advanced/ParallelRowIterator.cs @@ -44,7 +44,6 @@ public static partial class ParallelRowIterator where T : struct, IRowOperation { ValidateRectangle(rectangle); - ValidateSettings(parallelSettings); int top = rectangle.Top; int bottom = rectangle.Bottom; @@ -109,7 +108,6 @@ public static partial class ParallelRowIterator where TBuffer : unmanaged { ValidateRectangle(rectangle); - ValidateSettings(parallelSettings); int top = rectangle.Top; int bottom = rectangle.Bottom; @@ -174,7 +172,6 @@ public static partial class ParallelRowIterator where T : struct, IRowIntervalOperation { ValidateRectangle(rectangle); - ValidateSettings(parallelSettings); int top = rectangle.Top; int bottom = rectangle.Bottom; @@ -236,7 +233,6 @@ public static partial class ParallelRowIterator where TBuffer : unmanaged { ValidateRectangle(rectangle); - ValidateSettings(parallelSettings); int top = rectangle.Top; int bottom = rectangle.Bottom; @@ -315,35 +311,4 @@ public static partial class ParallelRowIterator 0, $"{nameof(rectangle)}.{nameof(rectangle.Height)}"); } - - /// - /// Validates the supplied . - /// - /// The execution settings. - /// - /// Thrown when or - /// is invalid. - /// - /// - /// Thrown when is null. - /// This also guards the public default value, which bypasses constructor validation. - /// - private static void ValidateSettings(in ParallelExecutionSettings parallelSettings) - { - // ParallelExecutionSettings is a public struct, so callers can pass default and bypass constructor validation. - if (parallelSettings.MaxDegreeOfParallelism is 0 or < -1) - { - throw new ArgumentOutOfRangeException( - $"{nameof(parallelSettings)}.{nameof(ParallelExecutionSettings.MaxDegreeOfParallelism)}"); - } - - Guard.MustBeGreaterThan( - parallelSettings.MinimumPixelsProcessedPerTask, - 0, - $"{nameof(parallelSettings)}.{nameof(ParallelExecutionSettings.MinimumPixelsProcessedPerTask)}"); - - Guard.NotNull( - parallelSettings.MemoryAllocator, - $"{nameof(parallelSettings)}.{nameof(ParallelExecutionSettings.MemoryAllocator)}"); - } } diff --git a/tests/ImageSharp.Tests/Helpers/ParallelRowIteratorTests.cs b/tests/ImageSharp.Tests/Helpers/ParallelRowIteratorTests.cs index cf68f702ac..017926fc5d 100644 --- a/tests/ImageSharp.Tests/Helpers/ParallelRowIteratorTests.cs +++ b/tests/ImageSharp.Tests/Helpers/ParallelRowIteratorTests.cs @@ -224,24 +224,6 @@ public class ParallelRowIteratorTests Assert.Equal(Enumerable.Repeat(1, rectangle.Height), actualData); } - [Fact] - public void IterateRowsWithTempBuffer_DefaultSettingsRequireInitialization() - { - ParallelExecutionSettings parallelSettings = default; - Rectangle rect = new(0, 0, 10, 10); - - void RowAction(int y, Span memory) - { - } - - TestRowOperation operation = new(RowAction); - - ArgumentOutOfRangeException ex = Assert.Throws( - () => ParallelRowIterator.IterateRows, Rgba32>(rect, in parallelSettings, in operation)); - - Assert.Contains(nameof(ParallelExecutionSettings.MaxDegreeOfParallelism), ex.Message); - } - public static TheoryData IterateRows_WithEffectiveMinimumPixelsLimit_Data = new() { @@ -367,24 +349,6 @@ public class ParallelRowIteratorTests Assert.Equal(Enumerable.Repeat(1, rectangle.Height), actualData); } - [Fact] - public void IterateRows_DefaultSettingsRequireInitialization() - { - ParallelExecutionSettings parallelSettings = default; - Rectangle rect = new(0, 0, 10, 10); - - void RowAction(int y) - { - } - - TestRowActionOperation operation = new(RowAction); - - ArgumentOutOfRangeException ex = Assert.Throws( - () => ParallelRowIterator.IterateRows(rect, in parallelSettings, in operation)); - - Assert.Contains(nameof(ParallelExecutionSettings.MaxDegreeOfParallelism), ex.Message); - } - public static readonly TheoryData IterateRectangularBuffer_Data = new() {