Index: core/fxcrt/extension.h |
diff --git a/core/fxcrt/extension.h b/core/fxcrt/extension.h |
index b0e7b9e117ef519b65524001eb00cbc2ea3f5c7f..698bded9b6f1dce25777f4df69ec4d800338f2c7 100644 |
--- a/core/fxcrt/extension.h |
+++ b/core/fxcrt/extension.h |
@@ -8,17 +8,19 @@ |
#define CORE_FXCRT_EXTENSION_H_ |
#include <algorithm> |
+#include <memory> |
#include "core/fxcrt/include/fx_basic.h" |
#include "core/fxcrt/include/fx_safe_types.h" |
class IFXCRT_FileAccess { |
public: |
+ static IFXCRT_FileAccess* Create(); |
virtual ~IFXCRT_FileAccess() {} |
+ |
virtual FX_BOOL Open(const CFX_ByteStringC& fileName, uint32_t dwMode) = 0; |
virtual FX_BOOL Open(const CFX_WideStringC& fileName, uint32_t dwMode) = 0; |
virtual void Close() = 0; |
- virtual void Release() = 0; |
virtual FX_FILESIZE GetSize() const = 0; |
virtual FX_FILESIZE GetPosition() const = 0; |
virtual FX_FILESIZE SetPosition(FX_FILESIZE pos) = 0; |
@@ -31,7 +33,6 @@ class IFXCRT_FileAccess { |
virtual FX_BOOL Flush() = 0; |
virtual FX_BOOL Truncate(FX_FILESIZE szFile) = 0; |
}; |
-IFXCRT_FileAccess* FXCRT_FileAccess_Create(); |
#ifdef PDF_ENABLE_XFA |
class CFX_CRTFileAccess : public IFX_FileAccess { |
@@ -69,7 +70,7 @@ class CFX_CRTFileAccess : public IFX_FileAccess { |
class CFX_CRTFileStream final : public IFX_FileStream { |
public: |
- explicit CFX_CRTFileStream(IFXCRT_FileAccess* pFA); |
+ explicit CFX_CRTFileStream(std::unique_ptr<IFXCRT_FileAccess> pFA); |
~CFX_CRTFileStream() override; |
// IFX_FileStream: |
@@ -86,7 +87,7 @@ class CFX_CRTFileStream final : public IFX_FileStream { |
FX_BOOL Flush() override; |
protected: |
- IFXCRT_FileAccess* m_pFile; |
+ std::unique_ptr<IFXCRT_FileAccess> m_pFile; |
uint32_t m_dwCount; |
}; |