| Index: Source/platform/graphics/DeferredImageDecoder.cpp
|
| diff --git a/Source/platform/graphics/DeferredImageDecoder.cpp b/Source/platform/graphics/DeferredImageDecoder.cpp
|
| index 61604b6960ac8ac025dd3b43b76a36114056cb33..6fc2f376bb501f6297fe059764daae974a36bbea 100644
|
| --- a/Source/platform/graphics/DeferredImageDecoder.cpp
|
| +++ b/Source/platform/graphics/DeferredImageDecoder.cpp
|
| @@ -88,30 +88,31 @@ String DeferredImageDecoder::filenameExtension() const
|
| return m_actualDecoder ? m_actualDecoder->filenameExtension() : m_filenameExtension;
|
| }
|
|
|
| -PassRefPtr<NativeImageSkia> DeferredImageDecoder::createFrameAtIndex(size_t index)
|
| +bool DeferredImageDecoder::createFrameAtIndex(size_t index, SkBitmap* bitmap)
|
| {
|
| prepareLazyDecodedFrames();
|
| if (index < m_frameData.size()) {
|
| // ImageFrameGenerator has the latest known alpha state. There will
|
| // be a performance boost if this frame is opaque.
|
| - SkBitmap bitmap = createBitmap(index);
|
| + *bitmap = createBitmap(index);
|
| if (m_frameGenerator->hasAlpha(index)) {
|
| m_frameData[index].m_hasAlpha = true;
|
| - bitmap.setAlphaType(kPremul_SkAlphaType);
|
| + bitmap->setAlphaType(kPremul_SkAlphaType);
|
| } else {
|
| m_frameData[index].m_hasAlpha = false;
|
| - bitmap.setAlphaType(kOpaque_SkAlphaType);
|
| + bitmap->setAlphaType(kOpaque_SkAlphaType);
|
| }
|
| m_frameData[index].m_frameBytes = m_size.area() * sizeof(ImageFrame::PixelData);
|
| - return NativeImageSkia::create(bitmap);
|
| + return true;
|
| }
|
| if (m_actualDecoder) {
|
| ImageFrame* buffer = m_actualDecoder->frameBufferAtIndex(index);
|
| if (!buffer || buffer->status() == ImageFrame::FrameEmpty)
|
| - return nullptr;
|
| - return buffer->asNewNativeImage();
|
| + return false;
|
| + *bitmap = buffer->bitmap();
|
| + return true;
|
| }
|
| - return nullptr;
|
| + return false;
|
| }
|
|
|
| void DeferredImageDecoder::setData(SharedBuffer& data, bool allDataReceived)
|
|
|