Index: xfa/fxfa/app/xfa_ffdoc.cpp |
diff --git a/xfa/fxfa/app/xfa_ffdoc.cpp b/xfa/fxfa/app/xfa_ffdoc.cpp |
index 77c3b251a250d79ad5541b7fc80a2a34bfbc39e2..f33e4e0585868226f5f796b330255a3021a6d06d 100644 |
--- a/xfa/fxfa/app/xfa_ffdoc.cpp |
+++ b/xfa/fxfa/app/xfa_ffdoc.cpp |
@@ -7,7 +7,6 @@ |
#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" |
@@ -146,11 +145,10 @@ |
if (!OpenDoc(pPDFDocument)) { |
return XFA_PARSESTATUS_SyntaxErr; |
} |
- std::unique_ptr<IXFA_Parser> pParser( |
- IXFA_Parser::Create(m_pDocument, TRUE)); |
- if (!pParser) |
- return XFA_PARSESTATUS_SyntaxErr; |
- |
+ 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) { |
@@ -162,6 +160,8 @@ |
} else { |
iStatus = XFA_PARSESTATUS_StatusErr; |
} |
+ pParser->Release(); |
+ pParser = NULL; |
} |
return iStatus; |
} |
@@ -265,7 +265,7 @@ |
m_TypeToDocViewMap.clear(); |
if (m_pDocument) { |
- m_pDocument->DestroyParser(); |
+ m_pDocument->GetParser()->Release(); |
m_pDocument = nullptr; |
} |