diff options
Diffstat (limited to 'xfa/fxfa/app/xfa_ffdoc.cpp')
-rw-r--r-- | xfa/fxfa/app/xfa_ffdoc.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/xfa/fxfa/app/xfa_ffdoc.cpp b/xfa/fxfa/app/xfa_ffdoc.cpp index f33e4e0585..77c3b251a2 100644 --- a/xfa/fxfa/app/xfa_ffdoc.cpp +++ b/xfa/fxfa/app/xfa_ffdoc.cpp @@ -7,6 +7,7 @@ #include "xfa/fxfa/include/xfa_ffdoc.h" #include <algorithm> +#include <memory> #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" @@ -145,10 +146,11 @@ int32_t CXFA_FFDoc::DoLoad(IFX_Pause* pPause) { if (!OpenDoc(pPDFDocument)) { return XFA_PARSESTATUS_SyntaxErr; } - IXFA_Parser* pParser = IXFA_Parser::Create(m_pDocument, TRUE); - if (!pParser) { + std::unique_ptr<IXFA_Parser> pParser( + IXFA_Parser::Create(m_pDocument, TRUE)); + if (!pParser) return XFA_PARSESTATUS_SyntaxErr; - } + CXFA_Node* pRootNode = NULL; if (pParser->StartParse(m_pStream) == XFA_PARSESTATUS_Ready && pParser->DoParse(NULL) == XFA_PARSESTATUS_Done) { @@ -160,8 +162,6 @@ int32_t CXFA_FFDoc::DoLoad(IFX_Pause* pPause) { } else { iStatus = XFA_PARSESTATUS_StatusErr; } - pParser->Release(); - pParser = NULL; } return iStatus; } @@ -265,7 +265,7 @@ FX_BOOL CXFA_FFDoc::CloseDoc() { m_TypeToDocViewMap.clear(); if (m_pDocument) { - m_pDocument->GetParser()->Release(); + m_pDocument->DestroyParser(); m_pDocument = nullptr; } |