Chromium Code Reviews| Index: core/src/fxcrt/extension.h |
| diff --git a/core/src/fxcrt/extension.h b/core/src/fxcrt/extension.h |
| index 0fdf8ab7bfd9ed4d94001314728d71acb06b2869..9960c033496e4929f2dfc70464a4ac2d53f36908 100644 |
| --- a/core/src/fxcrt/extension.h |
| +++ b/core/src/fxcrt/extension.h |
| @@ -30,40 +30,43 @@ class IFXCRT_FileAccess { |
| virtual FX_BOOL Truncate(FX_FILESIZE szFile) = 0; |
| }; |
| IFXCRT_FileAccess* FXCRT_FileAccess_Create(); |
| + |
| class CFX_CRTFileAccess : public IFX_FileAccess { |
|
Lei Zhang
2015/08/15 04:49:07
This is new in XFA.
|
| public: |
| CFX_CRTFileAccess() : m_RefCount(0) {} |
| - virtual void Release() { |
| + // IFX_FileAccess |
| + void Release() override { |
| if (--m_RefCount == 0) |
| delete this; |
| } |
| - IFX_FileAccess* Retain() { |
| + IFX_FileAccess* Retain() override { |
| m_RefCount++; |
| return (IFX_FileAccess*)this; |
| } |
| - virtual FX_BOOL Init(const CFX_WideStringC& wsPath) { |
| + void GetPath(CFX_WideString& wsPath) override { wsPath = m_path; } |
| + |
| + IFX_FileStream* CreateFileStream(FX_DWORD dwModes) override { |
| + return FX_CreateFileStream(m_path, dwModes); |
| + } |
| + |
| + FX_BOOL Init(const CFX_WideStringC& wsPath) { |
| m_path = wsPath; |
| m_RefCount = 1; |
| return TRUE; |
| } |
| - virtual void GetPath(CFX_WideString& wsPath) { wsPath = m_path; } |
| - |
| - virtual IFX_FileStream* CreateFileStream(FX_DWORD dwModes) { |
| - return FX_CreateFileStream(m_path, dwModes); |
| - } |
| - |
| protected: |
| CFX_WideString m_path; |
| FX_DWORD m_RefCount; |
| }; |
| + |
| class CFX_CRTFileStream final : public IFX_FileStream { |
| public: |
| CFX_CRTFileStream(IFXCRT_FileAccess* pFA) : m_pFile(pFA), m_dwCount(1) {} |
| - ~CFX_CRTFileStream() { |
| + ~CFX_CRTFileStream() override { |
| if (m_pFile) { |
| m_pFile->Release(); |
| } |
| @@ -100,6 +103,7 @@ class CFX_CRTFileStream final : public IFX_FileStream { |
| IFXCRT_FileAccess* m_pFile; |
| FX_DWORD m_dwCount; |
| }; |
| + |
| #define FX_MEMSTREAM_BlockSize (64 * 1024) |
| #define FX_MEMSTREAM_Consecutive 0x01 |
| #define FX_MEMSTREAM_TakeOver 0x02 |
| @@ -124,7 +128,7 @@ class CFX_MemoryStream final : public IFX_MemoryStream { |
| m_dwFlags = |
| FX_MEMSTREAM_Consecutive | (bTakeOver ? FX_MEMSTREAM_TakeOver : 0); |
| } |
| - ~CFX_MemoryStream() { |
| + ~CFX_MemoryStream() override { |
| if (m_dwFlags & FX_MEMSTREAM_TakeOver) { |
| for (int32_t i = 0; i < m_Blocks.GetSize(); i++) { |
| FX_Free((uint8_t*)m_Blocks[i]); |
| @@ -317,6 +321,7 @@ class CFX_MemoryStream final : public IFX_MemoryStream { |
| return TRUE; |
| } |
| }; |
| + |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |