| 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 9eca652db73d18bb48404854515530b9abb4e40e..9f6fef9c1fd6afce1444a00d4be53c64137c1a24 100644
|
| --- a/xfa/fxfa/parser/cxfa_simple_parser.cpp
|
| +++ b/xfa/fxfa/parser/cxfa_simple_parser.cpp
|
| @@ -6,6 +6,8 @@
|
|
|
| #include "xfa/fxfa/parser/cxfa_simple_parser.h"
|
|
|
| +#include <utility>
|
| +
|
| #include "core/fxcrt/fx_ext.h"
|
| #include "third_party/base/ptr_util.h"
|
| #include "xfa/fgas/crt/fgas_codepage.h"
|
| @@ -293,9 +295,11 @@ int32_t CXFA_SimpleParser::StartParse(
|
| wCodePage != FX_CODEPAGE_UTF8) {
|
| m_pStream->SetCodePage(FX_CODEPAGE_UTF8);
|
| }
|
| - m_pXMLDoc.reset(new CFDE_XMLDoc);
|
| - m_pXMLParser = new CXFA_XMLParser(m_pXMLDoc->GetRoot(), m_pStream);
|
| - if (!m_pXMLDoc->LoadXML(m_pXMLParser))
|
| + m_pXMLDoc = pdfium::MakeUnique<CFDE_XMLDoc>();
|
| + auto pNewParser =
|
| + pdfium::MakeUnique<CXFA_XMLParser>(m_pXMLDoc->GetRoot(), m_pStream);
|
| + m_pXMLParser = pNewParser.get();
|
| + if (!m_pXMLDoc->LoadXML(std::move(pNewParser)))
|
| return XFA_PARSESTATUS_StatusErr;
|
|
|
| m_ePacketID = ePacketID;
|
| @@ -326,12 +330,12 @@ int32_t CXFA_SimpleParser::ParseXMLData(const CFX_WideString& wsXML,
|
| IFX_Pause* pPause) {
|
| CloseParser();
|
| pXMLNode = nullptr;
|
| -
|
| - auto pStream = pdfium::MakeRetain<CXFA_WideTextRead>(wsXML);
|
| m_pXMLDoc = pdfium::MakeUnique<CFDE_XMLDoc>();
|
| - CXFA_XMLParser* pParser = new CXFA_XMLParser(m_pXMLDoc->GetRoot(), pStream);
|
| + auto pStream = pdfium::MakeRetain<CXFA_WideTextRead>(wsXML);
|
| + auto pParser =
|
| + pdfium::MakeUnique<CXFA_XMLParser>(m_pXMLDoc->GetRoot(), pStream);
|
| pParser->m_dwCheckStatus = 0x03;
|
| - if (!m_pXMLDoc->LoadXML(pParser))
|
| + if (!m_pXMLDoc->LoadXML(std::move(pParser)))
|
| return XFA_PARSESTATUS_StatusErr;
|
|
|
| int32_t iRet = m_pXMLDoc->DoLoad(pPause);
|
|
|