Index: xfa/fxfa/parser/xfa_document_serialize.cpp |
diff --git a/xfa/fxfa/parser/xfa_document_serialize.cpp b/xfa/fxfa/parser/xfa_document_serialize.cpp |
index febfa3e827269435b60f22364d557d12de917f1b..428b470c13924a8a99069047b8f5dfc2d13d9a56 100644 |
--- a/xfa/fxfa/parser/xfa_document_serialize.cpp |
+++ b/xfa/fxfa/parser/xfa_document_serialize.cpp |
@@ -12,7 +12,6 @@ |
#include "xfa/fxfa/parser/xfa_document.h" |
#include "xfa/fxfa/parser/xfa_localemgr.h" |
#include "xfa/fxfa/parser/xfa_object.h" |
-#include "xfa/fxfa/parser/xfa_parser.h" |
#include "xfa/fxfa/parser/xfa_parser_imp.h" |
#include "xfa/fxfa/parser/xfa_script.h" |
#include "xfa/fxfa/parser/xfa_utils.h" |
@@ -22,34 +21,31 @@ CXFA_DataImporter::CXFA_DataImporter(CXFA_Document* pDocument) |
ASSERT(m_pDocument); |
} |
FX_BOOL CXFA_DataImporter::ImportData(IFX_FileRead* pDataDocument) { |
- IXFA_Parser* pDataDocumentParser = IXFA_Parser::Create(m_pDocument); |
- if (!pDataDocumentParser) { |
+ std::unique_ptr<CXFA_SimpleParser> pDataDocumentParser( |
+ new CXFA_SimpleParser(m_pDocument, false)); |
+ if (!pDataDocumentParser) |
return FALSE; |
- } |
+ |
if (pDataDocumentParser->StartParse(pDataDocument, XFA_XDPPACKET_Datasets) != |
XFA_PARSESTATUS_Ready) { |
- pDataDocumentParser->Release(); |
return FALSE; |
} |
- if (pDataDocumentParser->DoParse(nullptr) < XFA_PARSESTATUS_Done) { |
- pDataDocumentParser->Release(); |
+ if (pDataDocumentParser->DoParse(nullptr) < XFA_PARSESTATUS_Done) |
return FALSE; |
- } |
+ |
CXFA_Node* pImportDataRoot = pDataDocumentParser->GetRootNode(); |
- if (!pImportDataRoot) { |
- pDataDocumentParser->Release(); |
+ if (!pImportDataRoot) |
return FALSE; |
- } |
+ |
CXFA_Node* pDataModel = |
ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Datasets)); |
- if (!pDataModel) { |
- pDataDocumentParser->Release(); |
+ if (!pDataModel) |
return FALSE; |
- } |
+ |
CXFA_Node* pDataNode = ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Data)); |
- if (pDataNode) { |
+ if (pDataNode) |
pDataModel->RemoveChild(pDataNode); |
- } |
+ |
if (pImportDataRoot->GetElementType() == XFA_Element::DataModel) { |
while (CXFA_Node* pChildNode = |
pImportDataRoot->GetNodeItem(XFA_NODEITEM_FirstChild)) { |
@@ -59,15 +55,14 @@ FX_BOOL CXFA_DataImporter::ImportData(IFX_FileRead* pDataDocument) { |
} else { |
CFDE_XMLNode* pXMLNode = pImportDataRoot->GetXMLMappingNode(); |
CFDE_XMLNode* pParentXMLNode = pXMLNode->GetNodeItem(CFDE_XMLNode::Parent); |
- if (pParentXMLNode) { |
+ if (pParentXMLNode) |
pParentXMLNode->RemoveChildNode(pXMLNode); |
- } |
pDataModel->InsertChild(pImportDataRoot); |
} |
m_pDocument->DoDataRemerge(FALSE); |
- pDataDocumentParser->Release(); |
return TRUE; |
} |
+ |
CFX_WideString XFA_ExportEncodeAttribute(const CFX_WideString& str) { |
CFX_WideTextBuf textBuf; |
int32_t iLen = str.GetLength(); |
@@ -487,7 +482,7 @@ FX_BOOL CXFA_DataExporter::Export(IFX_Stream* pStream, |
CXFA_Node* pNode, |
uint32_t dwFlag, |
const FX_CHAR* pChecksum) { |
- CFDE_XMLDoc* pXMLDoc = m_pDocument->GetParser()->GetXMLDoc(); |
+ CFDE_XMLDoc* pXMLDoc = m_pDocument->GetXMLDoc(); |
if (pNode->IsModelNode()) { |
switch (pNode->GetPacketID()) { |
case XFA_XDPPACKET_XDP: { |