Bug 1224100 - Initialize padding to 0 in Downscaler. r=seth, a=sledru
--- a/image/src/Downscaler.cpp
+++ b/image/src/Downscaler.cpp
@@ -81,21 +81,26 @@ Downscaler::BeginFrame(const nsIntSize&
mTargetSize.width, 0,
mTargetSize.width, mXFilter.get());
skia::resize::ComputeFilters(resizeMethod, mOriginalSize.height,
mTargetSize.height, 0,
mTargetSize.height, mYFilter.get());
// Allocate the buffer, which contains scanlines of the original image.
- mRowBuffer = MakeUnique<uint8_t[]>(mOriginalSize.width * sizeof(uint32_t));
+ size_t bufferLen = mOriginalSize.width * sizeof(uint32_t);
+ mRowBuffer = MakeUnique<uint8_t[]>(bufferLen);
if (MOZ_UNLIKELY(!mRowBuffer)) {
return NS_ERROR_OUT_OF_MEMORY;
}
+ // Zero buffer to keep valgrind happy.
+ memset(mRowBuffer.get(), 0, bufferLen);
+
+
// Allocate the window, which contains horizontally downscaled scanlines. (We
// can store scanlines which are already downscale because our downscaling
// filter is separable.)
mWindowCapacity = mYFilter->max_filter();
mWindow = MakeUnique<uint8_t*[]>(mWindowCapacity);
if (MOZ_UNLIKELY(!mWindow)) {
return NS_ERROR_OUT_OF_MEMORY;
}