Chromium Code Reviews| Index: third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp |
| diff --git a/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp b/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp |
| index 58b33b4e56ad98284fcc6bd9584a97adb2bebd28..4b1871ed549780f9c06a47596714589c4f119e47 100644 |
| --- a/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp |
| +++ b/third_party/WebKit/Source/platform/graphics/ImageBuffer.cpp |
| @@ -292,7 +292,12 @@ bool ImageBuffer::getImageData(Multiply multiplied, const IntRect& rect, WTF::Ar |
| return false; |
| if (!isSurfaceValid()) { |
| - WTF::ArrayBufferContents result(rect.width() * rect.height(), 4, WTF::ArrayBufferContents::NotShared, WTF::ArrayBufferContents::ZeroInitialize); |
| + size_t allocSizeInBytes = rect.width() * rect.height() * 4; |
| + void* data; |
| + WTF::ArrayBufferContents::allocateMemoryOrNull(allocSizeInBytes, WTF::ArrayBufferContents::ZeroInitialize, data); |
| + if (!data) |
| + return false; |
| + WTF::ArrayBufferContents result(data, allocSizeInBytes, WTF::ArrayBufferContents::NotShared); |
| result.transfer(contents); |
| return true; |
| } |
| @@ -308,12 +313,12 @@ bool ImageBuffer::getImageData(Multiply multiplied, const IntRect& rect, WTF::Ar |
| || rect.y() < 0 |
| || rect.maxX() > m_surface->size().width() |
| || rect.maxY() > m_surface->size().height(); |
| - WTF::ArrayBufferContents result( |
| - rect.width() * rect.height(), 4, |
| - WTF::ArrayBufferContents::NotShared, |
| - mayHaveStrayArea |
| - ? WTF::ArrayBufferContents::ZeroInitialize |
| - : WTF::ArrayBufferContents::DontInitialize); |
| + size_t allocSizeInBytes = rect.width() * rect.height() * 4; |
| + void* data; |
| + WTF::ArrayBufferContents::allocateMemoryOrNull(allocSizeInBytes, mayHaveStrayArea ? WTF::ArrayBufferContents::ZeroInitialize : WTF::ArrayBufferContents::DontInitialize, data); |
|
Stephen White
2016/03/07 22:09:54
Nit: might be clearer to pull the initialize enum
|
| + if (!data) |
| + return false; |
| + WTF::ArrayBufferContents result(data, allocSizeInBytes, WTF::ArrayBufferContents::NotShared); |
| SkAlphaType alphaType = (multiplied == Premultiplied) ? kPremul_SkAlphaType : kUnpremul_SkAlphaType; |
| SkImageInfo info = SkImageInfo::Make(rect.width(), rect.height(), kRGBA_8888_SkColorType, alphaType); |