Index: core/fxcrt/fx_extension.cpp |
diff --git a/core/fxcrt/fx_extension.cpp b/core/fxcrt/fx_extension.cpp |
index 1dddf09fd677a2a581ceab77d253846a3831fc5b..3717e16207c8a43bce0b301ddc2ac1d45b6d0353 100644 |
--- a/core/fxcrt/fx_extension.cpp |
+++ b/core/fxcrt/fx_extension.cpp |
@@ -17,11 +17,7 @@ |
CFX_CRTFileStream::CFX_CRTFileStream(IFXCRT_FileAccess* pFA) |
: m_pFile(pFA), m_dwCount(1) {} |
-CFX_CRTFileStream::~CFX_CRTFileStream() { |
- if (m_pFile) { |
- m_pFile->Release(); |
- } |
-} |
+CFX_CRTFileStream::~CFX_CRTFileStream() {} |
IFX_FileStream* CFX_CRTFileStream::Retain() { |
m_dwCount++; |
@@ -83,27 +79,22 @@ IFX_FileAccess* FX_CreateDefaultFileAccess(const CFX_WideStringC& wsPath) { |
#endif // PDF_ENABLE_XFA |
IFX_FileStream* FX_CreateFileStream(const FX_CHAR* filename, uint32_t dwModes) { |
- IFXCRT_FileAccess* pFA = FXCRT_FileAccess_Create(); |
- if (!pFA) { |
- return NULL; |
- } |
- if (!pFA->Open(filename, dwModes)) { |
- pFA->Release(); |
- return NULL; |
- } |
- return new CFX_CRTFileStream(pFA); |
+ std::unique_ptr<IFXCRT_FileAccess> pFA(IFXCRT_FileAccess::Create()); |
+ if (!pFA) |
Lei Zhang
2016/05/19 22:50:05
IFXCRT_FileAccess::Create() can't fail.
Tom Sepez
2016/05/19 23:18:31
Done.
|
+ return nullptr; |
+ if (!pFA->Open(filename, dwModes)) |
+ return nullptr; |
+ return new CFX_CRTFileStream(pFA.release()); |
Lei Zhang
2016/05/19 22:50:05
CFX_CRTFileStream should take a unique_ptr. The on
Tom Sepez
2016/05/19 23:18:31
Done.
|
} |
+ |
IFX_FileStream* FX_CreateFileStream(const FX_WCHAR* filename, |
uint32_t dwModes) { |
- IFXCRT_FileAccess* pFA = FXCRT_FileAccess_Create(); |
- if (!pFA) { |
- return NULL; |
- } |
- if (!pFA->Open(filename, dwModes)) { |
- pFA->Release(); |
- return NULL; |
- } |
- return new CFX_CRTFileStream(pFA); |
+ std::unique_ptr<IFXCRT_FileAccess> pFA(IFXCRT_FileAccess::Create()); |
+ if (!pFA) |
+ return nullptr; |
+ if (!pFA->Open(filename, dwModes)) |
+ return nullptr; |
+ return new CFX_CRTFileStream(pFA.release()); |
} |
IFX_FileRead* FX_CreateFileRead(const FX_CHAR* filename) { |
return FX_CreateFileStream(filename, FX_FILEMODE_ReadOnly); |