| Index: third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp
|
| index 5600cc13cc12c8c73fd6a7088e16eafc53bf2852..969d0942f528d635ae80b32aa10fc9783ed558fe 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/DeferredImageDecoder.cpp
|
| @@ -117,6 +117,24 @@ PassRefPtr<SkImage> DeferredImageDecoder::createFrameAtIndex(size_t index)
|
| return adoptRef(SkImage::NewFromBitmap(frame->bitmap()));
|
| }
|
|
|
| +bool DeferredImageDecoder::hasData() const
|
| +{
|
| + return static_cast<bool>(m_rwBuffer);
|
| +}
|
| +
|
| +PassRefPtr<SharedBuffer> DeferredImageDecoder::data()
|
| +{
|
| + if (!m_rwBuffer)
|
| + return nullptr;
|
| + RefPtr<SkROBuffer> roBuffer = adoptRef(m_rwBuffer->newRBufferSnapshot());
|
| + RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(roBuffer->size());
|
| + SkROBuffer::Iter it(roBuffer.get());
|
| + do {
|
| + sharedBuffer->append(static_cast<const char*>(it.data()), it.size());
|
| + } while (it.next());
|
| + return sharedBuffer;
|
| +}
|
| +
|
| void DeferredImageDecoder::setData(SharedBuffer& data, bool allDataReceived)
|
| {
|
| if (m_actualDecoder) {
|
| @@ -131,8 +149,9 @@ void DeferredImageDecoder::setData(SharedBuffer& data, bool allDataReceived)
|
|
|
| const char* segment = 0;
|
| for (size_t length = data.getSomeData(segment, m_rwBuffer->size());
|
| - length; length = data.getSomeData(segment, m_rwBuffer->size()))
|
| + length; length = data.getSomeData(segment, m_rwBuffer->size())) {
|
| m_rwBuffer->append(segment, length);
|
| + }
|
| }
|
| }
|
|
|
|
|