From 29937e17aee6514dbbf2e8632668fd326fa18c5d Mon Sep 17 00:00:00 2001 From: Lauri Kotilainen Date: Fri, 12 Jan 2018 15:00:45 +0200 Subject: [PATCH] - Oops. Note to self: don't make changes to unsafe code just before going to sleep --- src/ImageSharp/Memory/ArrayPoolMemoryManager.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ImageSharp/Memory/ArrayPoolMemoryManager.cs b/src/ImageSharp/Memory/ArrayPoolMemoryManager.cs index 86f3f0015..80c6e00e3 100644 --- a/src/ImageSharp/Memory/ArrayPoolMemoryManager.cs +++ b/src/ImageSharp/Memory/ArrayPoolMemoryManager.cs @@ -30,16 +30,18 @@ namespace SixLabors.ImageSharp.Memory } /// - internal override Buffer Allocate(int size, bool clear = false) + internal override Buffer Allocate(int itemCount, bool clear = false) { - int itemSize = Unsafe.SizeOf(); - if (this.minSizeBytes > 0 && itemSize < this.minSizeBytes * itemSize) + int itemSizeBytes = Unsafe.SizeOf(); + int bufferSizeInBytes = itemCount * itemSizeBytes; + + if (this.minSizeBytes > 0 && bufferSizeInBytes < this.minSizeBytes) { - return new Buffer(new T[itemSize], itemSize); + return new Buffer(new T[itemCount], itemCount); } - byte[] byteBuffer = this.pool.Rent(itemSize * itemSize); - var buffer = new Buffer(Unsafe.As(byteBuffer), itemSize, this); + byte[] byteBuffer = this.pool.Rent(bufferSizeInBytes); + var buffer = new Buffer(Unsafe.As(byteBuffer), itemCount, this); if (clear) { buffer.Clear();