windowscodecs: Don't copy extra data from the end of a row.
This commit is contained in:
parent
81edd2acfc
commit
e61e4719e5
|
@ -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)
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue