Index: Source/core/platform/image-decoders/gif/GIFImageReader.h |
diff --git a/Source/core/platform/image-decoders/gif/GIFImageReader.h b/Source/core/platform/image-decoders/gif/GIFImageReader.h |
index 105cd655e692776bf219a260e57dd2e1ef61d0fa..e5b9d7a737bfb9f2810e20001c6b691338327b7f 100644 |
--- a/Source/core/platform/image-decoders/gif/GIFImageReader.h |
+++ b/Source/core/platform/image-decoders/gif/GIFImageReader.h |
@@ -213,7 +213,7 @@ public: |
datasize = size; |
m_isDataSizeDefined = true; |
} |
- |
+ void clearDecodeState() { m_lzwContext.clear(); } |
private: |
OwnPtr<GIFLZWContext> m_lzwContext; |
Vector<GIFLZWBlock> m_lzwBlocks; // LZW blocks for this frame. |
@@ -231,7 +231,6 @@ public: |
, m_state(GIFType) |
, m_bytesToConsume(6) // Number of bytes for GIF type, either "GIF87a" or "GIF89a". |
, m_bytesRead(0) |
- , m_screenBgcolor(0) |
, m_version(0) |
, m_screenWidth(0) |
, m_screenHeight(0) |
@@ -239,7 +238,6 @@ public: |
, m_globalColormapPosition(0) |
, m_globalColormapSize(0) |
, m_loopCount(cLoopCountNotSeen) |
- , m_currentDecodingFrame(0) |
, m_parseCompleted(false) |
{ |
} |
@@ -249,8 +247,8 @@ public: |
} |
void setData(PassRefPtr<WebCore::SharedBuffer> data) { m_data = data; } |
- // FIXME: haltAtFrame should be size_t. |
- bool decode(WebCore::GIFImageDecoder::GIFQuery, unsigned haltAtFrame); |
+ bool parse(WebCore::GIFImageDecoder::GIFParseQuery); |
+ bool decode(size_t frameIndex); |
size_t imagesCount() const |
{ |
@@ -289,8 +287,10 @@ public: |
bool parseCompleted() const { return m_parseCompleted; } |
+ void clearDecodeState(size_t index) { m_frames[index]->clearDecodeState(); } |
+ |
private: |
- bool parse(size_t dataPosition, size_t len, bool parseSizeOnly); |
+ bool parseData(size_t dataPosition, size_t len, WebCore::GIFImageDecoder::GIFParseQuery); |
void setRemainingBytes(size_t); |
const unsigned char* data(size_t dataPosition) const |
@@ -312,7 +312,6 @@ private: |
size_t m_bytesRead; // Number of bytes processed. |
// Global (multi-image) state. |
- int m_screenBgcolor; // Logical screen background color. |
int m_version; // Either 89 for GIF89 or 87 for GIF87. |
unsigned m_screenWidth; // Logical screen width & height. |
unsigned m_screenHeight; |
@@ -322,7 +321,6 @@ private: |
int m_loopCount; // Netscape specific extension block to control the number of animation loops a GIF renders. |
Vector<OwnPtr<GIFFrameContext> > m_frames; |
- size_t m_currentDecodingFrame; |
RefPtr<WebCore::SharedBuffer> m_data; |
bool m_parseCompleted; |