From 257c8c597ba47aced618d5c434e66cd57d99271d Mon Sep 17 00:00:00 2001 From: zeromus Date: Wed, 10 Dec 2014 19:37:06 +0000 Subject: [PATCH] fix a crash when working on an 0x0 BitmapBuffer --- .../BizHawk.Bizware.BizwareGL/BitmapBuffer.cs | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/Bizware/BizHawk.Bizware.BizwareGL/BitmapBuffer.cs b/Bizware/BizHawk.Bizware.BizwareGL/BitmapBuffer.cs index a701992964..759ee6efd3 100644 --- a/Bizware/BizHawk.Bizware.BizwareGL/BitmapBuffer.cs +++ b/Bizware/BizHawk.Bizware.BizwareGL/BitmapBuffer.cs @@ -476,17 +476,20 @@ namespace BizHawk.Bizware.BizwareGL { var bmpdata = bmp.LockBits(new sd.Rectangle(0, 0, Width, Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb); - int* ptr = (int*)bmpdata.Scan0.ToPointer(); - int stride = bmpdata.Stride; - fixed (int* pPtr = &Pixels[0]) + if (bmp.Width != 0 && bmp.Height != 0) { - for (int idx = 0, y = 0; y < Height; y++) - for (int x = 0; x < Width; x++) - { - int srcPixel = pPtr[idx]; - ptr[idx] = srcPixel; - idx++; - } + int* ptr = (int*)bmpdata.Scan0.ToPointer(); + int stride = bmpdata.Stride; + fixed (int* pPtr = &Pixels[0]) + { + for (int idx = 0, y = 0; y < Height; y++) + for (int x = 0; x < Width; x++) + { + int srcPixel = pPtr[idx]; + ptr[idx] = srcPixel; + idx++; + } + } } bmp.UnlockBits(bmpdata);