| 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;
 | 
| 
 |