Chromium Code Reviews| Index: fpdfsdk/src/fpdfsave.cpp |
| diff --git a/fpdfsdk/src/fpdfsave.cpp b/fpdfsdk/src/fpdfsave.cpp |
| index 54c9253d2e4ed20e4b4efb97cc6f18445d2903ce..36553092eeae05e6402fb60a1da513695d7361bc 100644 |
| --- a/fpdfsdk/src/fpdfsave.cpp |
| +++ b/fpdfsdk/src/fpdfsave.cpp |
| @@ -18,10 +18,12 @@ class CFX_IFileWrite final : public IFX_StreamWrite { |
| public: |
| CFX_IFileWrite(); |
| FX_BOOL Init(FPDF_FILEWRITE* pFileWriteStruct); |
| - virtual FX_BOOL WriteBlock(const void* pData, size_t size) override; |
| - virtual void Release() override {} |
| + FX_BOOL WriteBlock(const void* pData, size_t size) override; |
| + void Release() override; |
| protected: |
| + ~CFX_IFileWrite() override {} |
| + |
| FPDF_FILEWRITE* m_pFileWriteStruct; |
| }; |
| @@ -45,6 +47,10 @@ FX_BOOL CFX_IFileWrite::WriteBlock(const void* pData, size_t size) { |
| return TRUE; |
| } |
| +void CFX_IFileWrite::Release() { |
|
Tom Sepez
2015/08/14 19:59:19
nit: release must go away. Someday.
Lei Zhang
2015/08/14 21:23:49
Yep, but just making this consistent for now.
|
| + delete this; |
| +} |
| + |
| FPDF_BOOL _FPDF_Doc_Save(FPDF_DOCUMENT document, |
| FPDF_FILEWRITE* pFileWrite, |
| FPDF_DWORD flags, |
| @@ -70,7 +76,7 @@ FPDF_BOOL _FPDF_Doc_Save(FPDF_DOCUMENT document, |
| pStreamWrite = new CFX_IFileWrite; |
| pStreamWrite->Init(pFileWrite); |
| bRet = FileMaker.Create(pStreamWrite, flags); |
| - delete pStreamWrite; |
|
Lei Zhang
2015/08/14 19:01:17
I'm not even sure if this should be deleting |pStr
|
| + pStreamWrite->Release(); |
| return bRet; |
| } |