| Index: core/src/fxcodec/codec/fx_codec_flate.cpp
 | 
| diff --git a/core/src/fxcodec/codec/fx_codec_flate.cpp b/core/src/fxcodec/codec/fx_codec_flate.cpp
 | 
| index 91d28b055394ae5a9ae9fe504b09f2cc645ebe94..a4b37c1ca3629ac319ed0c47e1cd01c1aa2b8c59 100644
 | 
| --- a/core/src/fxcodec/codec/fx_codec_flate.cpp
 | 
| +++ b/core/src/fxcodec/codec/fx_codec_flate.cpp
 | 
| @@ -603,10 +603,12 @@ static FX_BOOL TIFF_Predictor(uint8_t*& data_buf,
 | 
|    }
 | 
|    return TRUE;
 | 
|  }
 | 
| +
 | 
|  class CCodec_FlateScanlineDecoder : public CCodec_ScanlineDecoder {
 | 
|   public:
 | 
|    CCodec_FlateScanlineDecoder();
 | 
| -  ~CCodec_FlateScanlineDecoder();
 | 
| +  ~CCodec_FlateScanlineDecoder() override;
 | 
| +
 | 
|    void Create(const uint8_t* src_buf,
 | 
|                FX_DWORD src_size,
 | 
|                int width,
 | 
| @@ -617,11 +619,14 @@ class CCodec_FlateScanlineDecoder : public CCodec_ScanlineDecoder {
 | 
|                int Colors,
 | 
|                int BitsPerComponent,
 | 
|                int Columns);
 | 
| -  virtual void Destroy() { delete this; }
 | 
| -  virtual void v_DownScale(int dest_width, int dest_height) {}
 | 
| -  virtual FX_BOOL v_Rewind();
 | 
| -  virtual uint8_t* v_GetNextLine();
 | 
| -  virtual FX_DWORD GetSrcOffset();
 | 
| +  void Destroy() { delete this; }
 | 
| +
 | 
| +  // CCodec_ScanlineDecoder
 | 
| +  void v_DownScale(int dest_width, int dest_height) override {}
 | 
| +  FX_BOOL v_Rewind() override;
 | 
| +  uint8_t* v_GetNextLine() override;
 | 
| +  FX_DWORD GetSrcOffset() override;
 | 
| +
 | 
|    void* m_pFlate;
 | 
|    const uint8_t* m_SrcBuf;
 | 
|    FX_DWORD m_SrcSize;
 | 
| @@ -632,6 +637,7 @@ class CCodec_FlateScanlineDecoder : public CCodec_ScanlineDecoder {
 | 
|    int m_Predictor;
 | 
|    int m_Colors, m_BitsPerComponent, m_Columns, m_PredictPitch, m_LeftOver;
 | 
|  };
 | 
| +
 | 
|  CCodec_FlateScanlineDecoder::CCodec_FlateScanlineDecoder() {
 | 
|    m_pFlate = NULL;
 | 
|    m_pScanline = NULL;
 | 
| 
 |