Cleanup ownership of parser members
Change m_pXMLDoc and m_pStream in CXFA_SimpleParser to be a unique_ptr. This
allows removing the CloseParser() call from CXFA_DocumentParser as the items
will get cleaned up automatically.
Review-Url: https://codereview.chromium.org/2131653002
diff --git a/xfa/fxfa/parser/cxfa_document_parser.cpp b/xfa/fxfa/parser/cxfa_document_parser.cpp
index 565916b..ff54fb3 100644
--- a/xfa/fxfa/parser/cxfa_document_parser.cpp
+++ b/xfa/fxfa/parser/cxfa_document_parser.cpp
@@ -13,12 +13,13 @@
: m_nodeParser(nullptr, TRUE), m_pNotify(pNotify) {}
CXFA_DocumentParser::~CXFA_DocumentParser() {
- CloseParser();
}
int32_t CXFA_DocumentParser::StartParse(IFX_FileRead* pStream,
XFA_XDPPACKET ePacketID) {
- CloseParser();
+ m_pDocument.reset();
+ m_nodeParser.CloseParser();
+
int32_t nRetStatus = m_nodeParser.StartParse(pStream, ePacketID);
if (nRetStatus == XFA_PARSESTATUS_Ready) {
m_pDocument.reset(new CXFA_Document(this));
@@ -47,8 +48,3 @@
CXFA_Document* CXFA_DocumentParser::GetDocument() const {
return m_pDocument.get();
}
-
-void CXFA_DocumentParser::CloseParser() {
- m_pDocument.reset();
- m_nodeParser.CloseParser();
-}