Commit e61e4719 authored by Vincent Povirk's avatar Vincent Povirk Committed by Alexandre Julliard

windowscodecs: Don't copy extra data from the end of a row.

parent 81edd2ac
...@@ -86,7 +86,8 @@ HRESULT copy_pixels(UINT bpp, const BYTE *srcbuffer, ...@@ -86,7 +86,8 @@ HRESULT copy_pixels(UINT bpp, const BYTE *srcbuffer,
return E_INVALIDARG; return E_INVALIDARG;
/* if the whole bitmap is copied and the buffer format matches then it's a matter of a single memcpy */ /* if the whole bitmap is copied and the buffer format matches then it's a matter of a single memcpy */
if (rc->X == 0 && rc->Y == 0 && rc->Width == srcwidth && rc->Height == srcheight && srcstride == dststride) if (rc->X == 0 && rc->Y == 0 && rc->Width == srcwidth && rc->Height == srcheight &&
srcstride == dststride && srcstride == bytesperrow)
{ {
memcpy(dstbuffer, srcbuffer, srcstride * srcheight); memcpy(dstbuffer, srcbuffer, srcstride * srcheight);
return S_OK; return S_OK;
......
...@@ -489,10 +489,7 @@ static void test_CreateBitmapFromMemory(void) ...@@ -489,10 +489,7 @@ static void test_CreateBitmapFromMemory(void)
hr = IWICBitmap_CopyPixels(bitmap, NULL, 13, sizeof(data), data); hr = IWICBitmap_CopyPixels(bitmap, NULL, 13, sizeof(data), data);
ok(hr == S_OK, "IWICBitmap_CopyPixels error %#x\n", hr); ok(hr == S_OK, "IWICBitmap_CopyPixels error %#x\n", hr);
for (i = 0; i < sizeof(data); i++) for (i = 0; i < sizeof(data); i++)
if ((i % 13) < 9) ok(data[i] == data3x2[i], "%u: expected %u, got %u\n", i, data3x2[i], data[i]);
ok(data[i] == data3x2[i], "%u: expected %u, got %u\n", i, data3x2[i], data[i]);
else
todo_wine ok(data[i] == data3x2[i], "%u: expected %u, got %u\n", i, data3x2[i], data[i]);
IWICBitmap_Release(bitmap); IWICBitmap_Release(bitmap);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment