diff options
Diffstat (limited to 'WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp')
-rw-r--r-- | WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp b/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp index 3cf516e..a590a6c 100644 --- a/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp +++ b/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp @@ -119,6 +119,12 @@ RGBA32Buffer* GIFImageDecoder::frameBufferAtIndex(size_t index) return &frame; } +bool GIFImageDecoder::setFailed() +{ + m_reader.clear(); + return ImageDecoder::setFailed(); +} + void GIFImageDecoder::clearFrameBufferCache(size_t clearBeforeFrame) { // In some cases, like if the decoder was destroyed while animating, we @@ -300,9 +306,6 @@ void GIFImageDecoder::decode(unsigned haltAtFrame, GIFQuery query) // has failed. if (!m_reader->read((const unsigned char*)m_data->data() + m_readOffset, m_data->size() - m_readOffset, query, haltAtFrame) && isAllDataReceived()) setFailed(); - - if (failed()) - m_reader.clear(); } bool GIFImageDecoder::initFrameBuffer(unsigned frameIndex) |