Chromium Code Reviews| Index: Source/core/platform/image-decoders/ico/ICOImageDecoder.cpp |
| diff --git a/Source/core/platform/image-decoders/ico/ICOImageDecoder.cpp b/Source/core/platform/image-decoders/ico/ICOImageDecoder.cpp |
| index 6cd4379d83008a213a597537704da56e474016bd..a84d46d96c78d1d94fac8f43fd79de1536a8c902 100644 |
| --- a/Source/core/platform/image-decoders/ico/ICOImageDecoder.cpp |
| +++ b/Source/core/platform/image-decoders/ico/ICOImageDecoder.cpp |
| @@ -102,8 +102,10 @@ size_t ICOImageDecoder::frameCount() |
| decode(0, true); |
| if (m_frameBufferCache.isEmpty()) { |
| m_frameBufferCache.resize(m_dirEntries.size()); |
| - for (size_t i = 0; i < m_dirEntries.size(); ++i) |
| + for (size_t i = 0; i < m_dirEntries.size(); ++i) { |
| m_frameBufferCache[i].setPremultiplyAlpha(m_premultiplyAlpha); |
| + m_frameBufferCache[i].setRequiredPreviousFrameIndex(notFound); |
| + } |
| } |
| // CAUTION: We must not resize m_frameBufferCache again after this, as |
| // decodeAtIndex() may give a BMPImageReader a pointer to one of the |
| @@ -235,6 +237,7 @@ bool ICOImageDecoder::decodeAtIndex(size_t index) |
| if (m_pngDecoders[index]->isSizeAvailable() && (m_pngDecoders[index]->size() != dirEntry.m_size)) |
| return setFailed(); |
| m_frameBufferCache[index] = *m_pngDecoders[index]->frameBufferAtIndex(0); |
| + m_frameBufferCache[index].setRequiredPreviousFrameIndex(notFound); |
|
Peter Kasting
2013/06/03 18:39:10
Do you need to call setPremultiplyAlpha here as in
Xianzhu
2013/06/03 18:44:44
Yes, we need it. Done.
|
| return !m_pngDecoders[index]->failed() || setFailed(); |
| } |