diff --git a/src/ImageSharp/Formats/Pbm/PlainEncoder.cs b/src/ImageSharp/Formats/Pbm/PlainEncoder.cs index e362f8680f..b67f0a077c 100644 --- a/src/ImageSharp/Formats/Pbm/PlainEncoder.cs +++ b/src/ImageSharp/Formats/Pbm/PlainEncoder.cs @@ -15,7 +15,6 @@ namespace SixLabors.ImageSharp.Formats.Pbm /// internal class PlainEncoder { - private const int MaxLineLength = 70; private const byte NewLine = 0x0a; private const byte Space = 0x20; private const byte Zero = 0x30; @@ -77,7 +76,8 @@ namespace SixLabors.ImageSharp.Formats.Pbm MemoryAllocator allocator = configuration.MemoryAllocator; using IMemoryOwner row = allocator.Allocate(width); Span rowSpan = row.GetSpan(); - Span plainSpan = stackalloc byte[width * MaxCharsPerPixelGrayscale]; + IMemoryOwner plainMemory = allocator.Allocate(width * MaxCharsPerPixelGrayscale); + Span plainSpan = plainMemory.GetSpan(); for (int y = 0; y < height; y++) { @@ -108,7 +108,8 @@ namespace SixLabors.ImageSharp.Formats.Pbm MemoryAllocator allocator = configuration.MemoryAllocator; using IMemoryOwner row = allocator.Allocate(width); Span rowSpan = row.GetSpan(); - Span plainSpan = stackalloc byte[width * MaxCharsPerPixelGrayscaleWide]; + IMemoryOwner plainMemory = allocator.Allocate(width * MaxCharsPerPixelGrayscaleWide); + Span plainSpan = plainMemory.GetSpan(); for (int y = 0; y < height; y++) { @@ -139,7 +140,8 @@ namespace SixLabors.ImageSharp.Formats.Pbm MemoryAllocator allocator = configuration.MemoryAllocator; using IMemoryOwner row = allocator.Allocate(width); Span rowSpan = row.GetSpan(); - Span plainSpan = stackalloc byte[width * MaxCharsPerPixelRgb]; + IMemoryOwner plainMemory = allocator.Allocate(width * MaxCharsPerPixelRgb); + Span plainSpan = plainMemory.GetSpan(); for (int y = 0; y < height; y++) { @@ -176,7 +178,8 @@ namespace SixLabors.ImageSharp.Formats.Pbm MemoryAllocator allocator = configuration.MemoryAllocator; using IMemoryOwner row = allocator.Allocate(width); Span rowSpan = row.GetSpan(); - Span plainSpan = stackalloc byte[width * MaxCharsPerPixelRgbWide]; + IMemoryOwner plainMemory = allocator.Allocate(width * MaxCharsPerPixelRgbWide); + Span plainSpan = plainMemory.GetSpan(); for (int y = 0; y < height; y++) { @@ -213,7 +216,8 @@ namespace SixLabors.ImageSharp.Formats.Pbm MemoryAllocator allocator = configuration.MemoryAllocator; using IMemoryOwner row = allocator.Allocate(width); Span rowSpan = row.GetSpan(); - Span plainSpan = stackalloc byte[width * MaxCharsPerPixelBlackAndWhite]; + IMemoryOwner plainMemory = allocator.Allocate(width * MaxCharsPerPixelBlackAndWhite); + Span plainSpan = plainMemory.GetSpan(); for (int y = 0; y < height; y++) {