Index: core/fpdfapi/parser/cfdf_document.cpp |
diff --git a/core/fpdfapi/parser/cfdf_document.cpp b/core/fpdfapi/parser/cfdf_document.cpp |
index a6045e7795e37a359c18ee92a1bbcef57a43a933..65755520c08d7c6cbb0eb24ef721bd560c98a4c7 100644 |
--- a/core/fpdfapi/parser/cfdf_document.cpp |
+++ b/core/fpdfapi/parser/cfdf_document.cpp |
@@ -15,15 +15,9 @@ |
#include "third_party/base/ptr_util.h" |
CFDF_Document::CFDF_Document() |
- : CPDF_IndirectObjectHolder(), |
- m_pRootDict(nullptr), |
- m_pFile(nullptr), |
- m_bOwnFile(false) {} |
- |
-CFDF_Document::~CFDF_Document() { |
- if (m_bOwnFile && m_pFile) |
- m_pFile->Release(); |
-} |
+ : CPDF_IndirectObjectHolder(), m_pRootDict(nullptr) {} |
+ |
+CFDF_Document::~CFDF_Document() {} |
std::unique_ptr<CFDF_Document> CFDF_Document::CreateNewDoc() { |
auto pDoc = pdfium::MakeUnique<CFDF_Document>(); |
@@ -33,25 +27,23 @@ std::unique_ptr<CFDF_Document> CFDF_Document::CreateNewDoc() { |
} |
std::unique_ptr<CFDF_Document> CFDF_Document::ParseFile( |
- IFX_SeekableReadStream* pFile, |
- bool bOwnFile) { |
+ const CFX_RetainPtr<IFX_SeekableReadStream>& pFile) { |
if (!pFile) |
return nullptr; |
auto pDoc = pdfium::MakeUnique<CFDF_Document>(); |
- pDoc->ParseStream(pFile, bOwnFile); |
+ pDoc->ParseStream(pFile); |
return pDoc->m_pRootDict ? std::move(pDoc) : nullptr; |
} |
-std::unique_ptr<CFDF_Document> CFDF_Document::ParseMemory(const uint8_t* pData, |
+std::unique_ptr<CFDF_Document> CFDF_Document::ParseMemory(uint8_t* pData, |
uint32_t size) { |
- return CFDF_Document::ParseFile( |
- IFX_MemoryStream::Create((uint8_t*)pData, size), true); |
+ return CFDF_Document::ParseFile(IFX_MemoryStream::Create(pData, size)); |
} |
-void CFDF_Document::ParseStream(IFX_SeekableReadStream* pFile, bool bOwnFile) { |
+void CFDF_Document::ParseStream( |
+ const CFX_RetainPtr<IFX_SeekableReadStream>& pFile) { |
m_pFile = pFile; |
- m_bOwnFile = bOwnFile; |
CPDF_SyntaxParser parser; |
parser.InitParser(m_pFile, 0); |
while (1) { |