WebPPictureAllocARGB: align argb allocation

Change-Id: Ib390e8bbb97b38316a38af6a33e8a26bd050ee16
This commit is contained in:
James Zern 2017-11-16 20:19:09 -08:00
parent 80285d97ad
commit c184665ecd

View File

@ -76,13 +76,12 @@ int WebPPictureAllocARGB(WebPPicture* const picture, int width, int height) {
return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION); return WebPEncodingSetError(picture, VP8_ENC_ERROR_BAD_DIMENSION);
} }
// allocate a new buffer. // allocate a new buffer.
memory = WebPSafeMalloc(argb_size, sizeof(*picture->argb)); memory = WebPSafeMalloc(argb_size + WEBP_ALIGN_CST, sizeof(*picture->argb));
if (memory == NULL) { if (memory == NULL) {
return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY); return WebPEncodingSetError(picture, VP8_ENC_ERROR_OUT_OF_MEMORY);
} }
// TODO(skal): align plane to cache line?
picture->memory_argb_ = memory; picture->memory_argb_ = memory;
picture->argb = (uint32_t*)memory; picture->argb = (uint32_t*)WEBP_ALIGN(memory);
picture->argb_stride = width; picture->argb_stride = width;
return 1; return 1;
} }