Bug 921132 - Make CopyDataToCairoSurface respect stride. r=ncameron

This commit is contained in:
Markus Stange 2013-09-27 17:21:09 +02:00
parent 23c401886a
commit d271c7e26c

View File

@ -902,6 +902,7 @@ CopyDataToCairoSurface(cairo_surface_t* aSurface,
int32_t aPixelWidth)
{
unsigned char* surfData = cairo_image_surface_get_data(aSurface);
int surfStride = cairo_image_surface_get_stride(aSurface);
// In certain scenarios, requesting larger than 8k image fails. Bug 803568
// covers the details of how to run into it, but the full detailed
// investigation hasn't been done to determine the underlying cause. We
@ -910,7 +911,7 @@ CopyDataToCairoSurface(cairo_surface_t* aSurface,
return;
}
for (int32_t y = 0; y < aSize.height; ++y) {
memcpy(surfData + y * aSize.width * aPixelWidth,
memcpy(surfData + y * surfStride,
aData + y * aStride,
aSize.width * aPixelWidth);
}