summaryrefslogtreecommitdiff
path: root/xfa/fxfa/app/xfa_ffdoc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxfa/app/xfa_ffdoc.cpp')
-rw-r--r--xfa/fxfa/app/xfa_ffdoc.cpp12
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;
}