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 01ea1d6fae731d6165fd0f4c10b2cc6f2c9ff5a3..bb4ba864d5641d67552e2f096a5d4baa6cfe684d 100644 |
--- a/xfa/fxfa/parser/xfa_parser_imp.cpp |
+++ b/xfa/fxfa/parser/xfa_parser_imp.cpp |
@@ -680,10 +680,9 @@ CXFA_Node* CXFA_SimpleParser::ParseAsXDPPacket_Data( |
CXFA_Node* pNode = |
m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, XFA_ELEMENT_DataGroup); |
if (!pNode) { |
- if (pDataXMLNode != pXMLDocumentNode) { |
- pDataXMLNode->Release(); |
- } |
- return NULL; |
+ if (pDataXMLNode != pXMLDocumentNode) |
+ delete pDataXMLNode; |
+ return nullptr; |
} |
CFX_WideString wsLocalName; |
static_cast<CFDE_XMLElement*>(pDataXMLNode)->GetLocalTagName(wsLocalName); |
@@ -1335,13 +1334,11 @@ void CXFA_SimpleParser::ParseInstruction(CXFA_Node* pXFANode, |
} |
} |
void CXFA_SimpleParser::CloseParser() { |
- if (m_pXMLDoc) { |
- m_pXMLDoc->Release(); |
- m_pXMLDoc = NULL; |
- } |
+ delete m_pXMLDoc; |
+ m_pXMLDoc = nullptr; |
if (m_pStream) { |
m_pStream->Release(); |
- m_pStream = NULL; |
+ m_pStream = nullptr; |
} |
} |
@@ -1410,17 +1407,16 @@ CXFA_XMLParser::CXFA_XMLParser(CFDE_XMLNode* pRoot, IFX_Stream* pStream) |
m_syntaxParserResult(FDE_XmlSyntaxResult::None) { |
ASSERT(m_pParent && m_pStream); |
m_NodeStack.Push(m_pParent); |
- m_pParser = new CFDE_XMLSyntaxParser; |
+ m_pParser.reset(new CFDE_XMLSyntaxParser); |
m_pParser->Init(m_pStream, 32 * 1024, 1024 * 1024); |
} |
+ |
CXFA_XMLParser::~CXFA_XMLParser() { |
- if (m_pParser) { |
- m_pParser->Release(); |
- } |
m_NodeStack.RemoveAll(); |
m_ws1.clear(); |
m_ws2.clear(); |
} |
+ |
int32_t CXFA_XMLParser::DoParser(IFX_Pause* pPause) { |
if (m_syntaxParserResult == FDE_XmlSyntaxResult::Error) |
return -1; |