Title: [147573] branches/chromium/1453/Source/WebCore/platform/image-decoders/gif
- Revision
- 147573
- Author
- [email protected]
- Date
- 2013-04-03 12:08:42 -0700 (Wed, 03 Apr 2013)
Log Message
Merge 147392 "Simply GIFImageReader error handling"
> Simply GIFImageReader error handling
> https://bugs.webkit.org/show_bug.cgi?id=113718
>
> Reviewed by Adam Barth.
>
> When GIFImageReader encounters a parsing error it should just return
> without doing any more work. Current code saves a boolean before return,
> this is not necessary.
>
> Tested with existing unit tests.
> Tested locally with ASAN build with 60k GIF images.
>
> * platform/image-decoders/gif/GIFImageDecoder.cpp:
> (WebCore::GIFImageDecoder::repetitionCount):
> * platform/image-decoders/gif/GIFImageReader.cpp:
> (GIFImageReader::decode):
> * platform/image-decoders/gif/GIFImageReader.h:
> (GIFImageReader::GIFImageReader):
> (GIFImageReader):
>
[email protected]
Review URL: https://codereview.chromium.org/13578002
Modified Paths
Diff
Modified: branches/chromium/1453/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp (147572 => 147573)
--- branches/chromium/1453/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp 2013-04-03 18:58:15 UTC (rev 147572)
+++ branches/chromium/1453/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp 2013-04-03 19:08:42 UTC (rev 147573)
@@ -106,7 +106,7 @@
// see the loop count and then encounter a decoding error which happens
// later in the stream. It is also possible that no frames are in the
// stream. In these cases we should just loop once.
- if (failed() || (m_reader && (!m_reader->imagesCount() || m_reader->parseFailed())))
+ if (failed() || (m_reader && (!m_reader->imagesCount())))
m_repetitionCount = cAnimationLoopOnce;
else if (m_reader && m_reader->loopCount() != cLoopCountNotSeen)
m_repetitionCount = m_reader->loopCount();
Modified: branches/chromium/1453/Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp (147572 => 147573)
--- branches/chromium/1453/Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp 2013-04-03 18:58:15 UTC (rev 147572)
+++ branches/chromium/1453/Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp 2013-04-03 19:08:42 UTC (rev 147573)
@@ -358,10 +358,8 @@
{
ASSERT(m_bytesRead <= m_data->size());
- if (!m_parseFailed && !parse(m_bytesRead, m_data->size() - m_bytesRead, query == GIFImageDecoder::GIFSizeQuery)) {
- m_parseFailed = true;
+ if (!parse(m_bytesRead, m_data->size() - m_bytesRead, query == GIFImageDecoder::GIFSizeQuery))
return false;
- }
if (query != GIFImageDecoder::GIFFullQuery)
return true;
Modified: branches/chromium/1453/Source/WebCore/platform/image-decoders/gif/GIFImageReader.h (147572 => 147573)
--- branches/chromium/1453/Source/WebCore/platform/image-decoders/gif/GIFImageReader.h 2013-04-03 18:58:15 UTC (rev 147572)
+++ branches/chromium/1453/Source/WebCore/platform/image-decoders/gif/GIFImageReader.h 2013-04-03 19:08:42 UTC (rev 147573)
@@ -240,7 +240,6 @@
, m_globalColormapSize(0)
, m_loopCount(cLoopCountNotSeen)
, m_currentDecodingFrame(0)
- , m_parseFailed(false)
, m_parseCompleted(false)
{
}
@@ -288,8 +287,6 @@
return m_currentDecodingFrame < m_frames.size() ? m_frames[m_currentDecodingFrame].get() : 0;
}
- bool parseFailed() const { return m_parseFailed; }
-
private:
bool parse(size_t dataPosition, size_t len, bool parseSizeOnly);
void setRemainingBytes(size_t);
@@ -326,7 +323,6 @@
size_t m_currentDecodingFrame;
RefPtr<WebCore::SharedBuffer> m_data;
- bool m_parseFailed;
bool m_parseCompleted;
};
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes