Index: xfa/fxfa/parser/cxfa_simple_parser.cpp |
diff --git a/xfa/fxfa/parser/cxfa_simple_parser.cpp b/xfa/fxfa/parser/cxfa_simple_parser.cpp |
index 2329e86874fd910d72ec921e57fd5a42078056b2..9eca652db73d18bb48404854515530b9abb4e40e 100644 |
--- a/xfa/fxfa/parser/cxfa_simple_parser.cpp |
+++ b/xfa/fxfa/parser/cxfa_simple_parser.cpp |
@@ -7,6 +7,7 @@ |
#include "xfa/fxfa/parser/cxfa_simple_parser.h" |
#include "core/fxcrt/fx_ext.h" |
+#include "third_party/base/ptr_util.h" |
#include "xfa/fgas/crt/fgas_codepage.h" |
#include "xfa/fxfa/fxfa.h" |
#include "xfa/fxfa/parser/cxfa_document.h" |
@@ -282,8 +283,8 @@ int32_t CXFA_SimpleParser::StartParse( |
XFA_XDPPACKET ePacketID) { |
CloseParser(); |
m_pFileRead = pStream; |
- m_pStream.reset(IFGAS_Stream::CreateStream( |
- pStream, FX_STREAMACCESS_Read | FX_STREAMACCESS_Text)); |
+ m_pStream = IFGAS_Stream::CreateStream( |
+ pStream, FX_STREAMACCESS_Read | FX_STREAMACCESS_Text); |
if (!m_pStream) |
return XFA_PARSESTATUS_StreamErr; |
@@ -293,7 +294,7 @@ int32_t CXFA_SimpleParser::StartParse( |
m_pStream->SetCodePage(FX_CODEPAGE_UTF8); |
} |
m_pXMLDoc.reset(new CFDE_XMLDoc); |
- m_pXMLParser = new CXFA_XMLParser(m_pXMLDoc->GetRoot(), m_pStream.get()); |
+ m_pXMLParser = new CXFA_XMLParser(m_pXMLDoc->GetRoot(), m_pStream); |
if (!m_pXMLDoc->LoadXML(m_pXMLParser)) |
return XFA_PARSESTATUS_StatusErr; |
@@ -313,10 +314,10 @@ int32_t CXFA_SimpleParser::DoParse(IFX_Pause* pPause) { |
m_pRootNode = ParseAsXDPPacket(GetDocumentNode(m_pXMLDoc.get()), m_ePacketID); |
m_pXMLDoc->CloseXML(); |
- m_pStream.reset(); |
- |
+ m_pStream.Reset(); |
if (!m_pRootNode) |
return XFA_PARSESTATUS_StatusErr; |
+ |
return XFA_PARSESTATUS_Done; |
} |
@@ -326,10 +327,9 @@ int32_t CXFA_SimpleParser::ParseXMLData(const CFX_WideString& wsXML, |
CloseParser(); |
pXMLNode = nullptr; |
- std::unique_ptr<IFGAS_Stream> pStream(new CXFA_WideTextRead(wsXML)); |
- m_pXMLDoc.reset(new CFDE_XMLDoc); |
- CXFA_XMLParser* pParser = |
- new CXFA_XMLParser(m_pXMLDoc->GetRoot(), pStream.get()); |
+ auto pStream = pdfium::MakeRetain<CXFA_WideTextRead>(wsXML); |
+ m_pXMLDoc = pdfium::MakeUnique<CFDE_XMLDoc>(); |
+ CXFA_XMLParser* pParser = new CXFA_XMLParser(m_pXMLDoc->GetRoot(), pStream); |
pParser->m_dwCheckStatus = 0x03; |
if (!m_pXMLDoc->LoadXML(pParser)) |
return XFA_PARSESTATUS_StatusErr; |
@@ -1306,5 +1306,5 @@ void CXFA_SimpleParser::ParseInstruction(CXFA_Node* pXFANode, |
void CXFA_SimpleParser::CloseParser() { |
m_pXMLDoc.reset(); |
- m_pStream.reset(); |
+ m_pStream.Reset(); |
} |