| Index: third_party/WebKit/Source/platform/image-decoders/ImageDecoder.h
|
| diff --git a/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.h b/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.h
|
| index de85ae0cfac38c1ec639927926eaff9bc04a4254..fa0a989994df1bcca5748e9c2570c18a630631c2 100644
|
| --- a/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.h
|
| +++ b/third_party/WebKit/Source/platform/image-decoders/ImageDecoder.h
|
| @@ -258,13 +258,15 @@ class PLATFORM_EXPORT ImageDecoder {
|
| // and returns true. Otherwise returns false.
|
| virtual bool hotSpot(IntPoint&) const { return false; }
|
|
|
| - virtual void setMemoryAllocator(SkBitmap::Allocator* allocator) {
|
| + void setMemoryAllocator(SkBitmap::Allocator* allocator) {
|
| // FIXME: this doesn't work for images with multiple frames.
|
| if (m_frameBufferCache.isEmpty()) {
|
| - m_frameBufferCache.resize(1);
|
| - m_frameBufferCache[0].setRequiredPreviousFrameIndex(
|
| - findRequiredPreviousFrame(0, false));
|
| + // Ensure that initializeNewFrame is called, after parsing if
|
| + // necessary.
|
| + if (!frameCount())
|
| + return;
|
| }
|
| +
|
| m_frameBufferCache[0].setMemoryAllocator(allocator);
|
| }
|
|
|
| @@ -313,9 +315,11 @@ class PLATFORM_EXPORT ImageDecoder {
|
| virtual size_t decodeFrameCount() { return 1; }
|
|
|
| // Called to initialize the frame buffer with the given index, based on the
|
| - // provided and previous frame's characteristics. Returns true on success. On
|
| - // failure, this will mark the image as failed. Before calling this method,
|
| - // the caller must verify that the frame exists.
|
| + // provided and previous frame's characteristics. Returns true on success.
|
| + // Before calling this method, the caller must verify that the frame exists.
|
| + // On failure, the client should call setFailed. This method does not call
|
| + // setFailed itself because that might delete the object directly making this
|
| + // call.
|
| bool initFrameBuffer(size_t);
|
|
|
| // Performs any additional setup of the requested frame after it has been
|
|
|