| Index: xfa/fxfa/parser/xfa_parser_imp.cpp
|
| diff --git a/xfa/fxfa/parser/xfa_parser_imp.cpp b/xfa/fxfa/parser/xfa_parser_imp.cpp
|
| index 2ce17372ae8ebe0000a8f203e2c83fd956e23f81..e4387a78380c51eb7d3b5507bb5aed8ba94831e6 100644
|
| --- a/xfa/fxfa/parser/xfa_parser_imp.cpp
|
| +++ b/xfa/fxfa/parser/xfa_parser_imp.cpp
|
| @@ -16,16 +16,11 @@
|
| #include "xfa/fxfa/parser/xfa_document.h"
|
| #include "xfa/fxfa/parser/xfa_localemgr.h"
|
| #include "xfa/fxfa/parser/xfa_object.h"
|
| -#include "xfa/fxfa/parser/xfa_parser.h"
|
| #include "xfa/fxfa/parser/xfa_script.h"
|
| #include "xfa/fxfa/parser/xfa_utils.h"
|
|
|
| -IXFA_Parser* IXFA_Parser::Create(CXFA_Document* pFactory,
|
| - FX_BOOL bDocumentParser) {
|
| - return new CXFA_SimpleParser(pFactory, bDocumentParser);
|
| -}
|
| CXFA_SimpleParser::CXFA_SimpleParser(CXFA_Document* pFactory,
|
| - FX_BOOL bDocumentParser)
|
| + bool bDocumentParser)
|
| : m_pXMLParser(nullptr),
|
| m_pXMLDoc(nullptr),
|
| m_pStream(nullptr),
|
| @@ -34,15 +29,15 @@ CXFA_SimpleParser::CXFA_SimpleParser(CXFA_Document* pFactory,
|
| m_pRootNode(nullptr),
|
| m_ePacketID(XFA_XDPPACKET_UNKNOWN),
|
| m_bDocumentParser(bDocumentParser) {}
|
| +
|
| CXFA_SimpleParser::~CXFA_SimpleParser() {
|
| CloseParser();
|
| }
|
| -void CXFA_SimpleParser::Release() {
|
| - delete this;
|
| -}
|
| +
|
| void CXFA_SimpleParser::SetFactory(CXFA_Document* pFactory) {
|
| m_pFactory = pFactory;
|
| }
|
| +
|
| static CFDE_XMLNode* XFA_FDEExtension_GetDocumentNode(
|
| CFDE_XMLDoc* pXMLDoc,
|
| FX_BOOL bVerifyWellFormness = FALSE) {
|
| @@ -194,10 +189,6 @@ void CXFA_SimpleParser::ConstructXFANode(CXFA_Node* pXFANode,
|
| }
|
| }
|
|
|
| -CXFA_Document* CXFA_SimpleParser::GetFactory() const {
|
| - return m_pFactory;
|
| -}
|
| -
|
| CXFA_Node* CXFA_SimpleParser::GetRootNode() const {
|
| return m_pRootNode;
|
| }
|
| @@ -1335,23 +1326,22 @@ void CXFA_SimpleParser::CloseParser() {
|
|
|
| CXFA_DocumentParser::CXFA_DocumentParser(CXFA_FFNotify* pNotify)
|
| : m_nodeParser(nullptr, TRUE), m_pNotify(pNotify), m_pDocument(nullptr) {}
|
| +
|
| CXFA_DocumentParser::~CXFA_DocumentParser() {
|
| CloseParser();
|
| }
|
|
|
| -void CXFA_DocumentParser::Release() {
|
| - delete this;
|
| -}
|
| int32_t CXFA_DocumentParser::StartParse(IFX_FileRead* pStream,
|
| XFA_XDPPACKET ePacketID) {
|
| CloseParser();
|
| int32_t nRetStatus = m_nodeParser.StartParse(pStream, ePacketID);
|
| if (nRetStatus == XFA_PARSESTATUS_Ready) {
|
| - m_pDocument = new CXFA_Document(this);
|
| - m_nodeParser.SetFactory(m_pDocument);
|
| + m_pDocument.reset(new CXFA_Document(this));
|
| + m_nodeParser.SetFactory(m_pDocument.get());
|
| }
|
| return nRetStatus;
|
| }
|
| +
|
| int32_t CXFA_DocumentParser::DoParse(IFX_Pause* pPause) {
|
| int32_t nRetStatus = m_nodeParser.DoParse(pPause);
|
| if (nRetStatus >= XFA_PARSESTATUS_Done) {
|
| @@ -1360,36 +1350,6 @@ int32_t CXFA_DocumentParser::DoParse(IFX_Pause* pPause) {
|
| }
|
| return nRetStatus;
|
| }
|
| -int32_t CXFA_DocumentParser::ParseXMLData(const CFX_WideString& wsXML,
|
| - CFDE_XMLNode*& pXMLNode,
|
| - IFX_Pause* pPause) {
|
| - CloseParser();
|
| - int32_t nRetStatus = m_nodeParser.ParseXMLData(wsXML, pXMLNode, nullptr);
|
| - if (nRetStatus == XFA_PARSESTATUS_Done && pXMLNode) {
|
| - m_pDocument = new CXFA_Document(this);
|
| - m_nodeParser.SetFactory(m_pDocument);
|
| - }
|
| - return nRetStatus;
|
| -}
|
| -void CXFA_DocumentParser::ConstructXFANode(CXFA_Node* pXFANode,
|
| - CFDE_XMLNode* pXMLNode) {
|
| - if (!pXFANode || !pXMLNode) {
|
| - return;
|
| - }
|
| - m_nodeParser.ConstructXFANode(pXFANode, pXMLNode);
|
| - CXFA_Node* pRootNode = m_nodeParser.GetRootNode();
|
| - if (m_pDocument && pRootNode) {
|
| - m_pDocument->SetRoot(pRootNode);
|
| - }
|
| -}
|
| -
|
| -CXFA_Document* CXFA_DocumentParser::GetFactory() const {
|
| - return m_nodeParser.GetFactory();
|
| -}
|
| -
|
| -CXFA_Node* CXFA_DocumentParser::GetRootNode() const {
|
| - return m_nodeParser.GetRootNode();
|
| -}
|
|
|
| CFDE_XMLDoc* CXFA_DocumentParser::GetXMLDoc() const {
|
| return m_nodeParser.GetXMLDoc();
|
| @@ -1400,12 +1360,11 @@ CXFA_FFNotify* CXFA_DocumentParser::GetNotify() const {
|
| }
|
|
|
| CXFA_Document* CXFA_DocumentParser::GetDocument() const {
|
| - return m_pDocument;
|
| + return m_pDocument.get();
|
| }
|
|
|
| void CXFA_DocumentParser::CloseParser() {
|
| - delete m_pDocument;
|
| - m_pDocument = nullptr;
|
| + m_pDocument.reset();
|
| m_nodeParser.CloseParser();
|
| }
|
|
|
|
|