summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp')
-rw-r--r--WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp9
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)