Merge CXFA_SimpleParser::{Start|Do}Parse

The StartParse and DoParse methods have been merged into a single Parse
method.

Change-Id: I1310bda90b853c11af8b8d1794de6b5c19e931cf
Reviewed-on: https://pdfium-review.googlesource.com/30010
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
diff --git a/xfa/fxfa/parser/cxfa_dataimporter.cpp b/xfa/fxfa/parser/cxfa_dataimporter.cpp
index c5c23fc..01e95b1 100644
--- a/xfa/fxfa/parser/cxfa_dataimporter.cpp
+++ b/xfa/fxfa/parser/cxfa_dataimporter.cpp
@@ -26,13 +26,12 @@
 
 bool CXFA_DataImporter::ImportData(
     const RetainPtr<IFX_SeekableStream>& pDataDocument) {
-  auto pDataDocumentParser =
-      pdfium::MakeUnique<CXFA_SimpleParser>(m_pDocument.Get());
-  pDataDocumentParser->StartParse(pDataDocument, XFA_PacketType::Datasets);
-  if (pDataDocumentParser->DoParse() < XFA_PARSESTATUS_Done)
+  CXFA_SimpleParser parser(m_pDocument.Get());
+  int status = parser.Parse(pDataDocument, XFA_PacketType::Datasets);
+  if (status < XFA_PARSESTATUS_Done)
     return false;
 
-  CXFA_Node* pImportDataRoot = pDataDocumentParser->GetRootNode();
+  CXFA_Node* pImportDataRoot = parser.GetRootNode();
   if (!pImportDataRoot)
     return false;
 
diff --git a/xfa/fxfa/parser/cxfa_document_parser.cpp b/xfa/fxfa/parser/cxfa_document_parser.cpp
index 8df91bc..18f9955 100644
--- a/xfa/fxfa/parser/cxfa_document_parser.cpp
+++ b/xfa/fxfa/parser/cxfa_document_parser.cpp
@@ -23,12 +23,10 @@
   m_pDocument.reset();
   m_nodeParser.CloseParser();
 
-  m_nodeParser.StartParse(pStream, ePacketID);
-
   m_pDocument = pdfium::MakeUnique<CXFA_Document>(GetNotify());
   m_nodeParser.SetFactory(m_pDocument.get());
 
-  int32_t nRetStatus = m_nodeParser.DoParse();
+  int32_t nRetStatus = m_nodeParser.Parse(pStream, ePacketID);
   if (nRetStatus == XFA_PARSESTATUS_Done) {
     ASSERT(m_pDocument);
     m_pDocument->SetRoot(m_nodeParser.GetRootNode());
diff --git a/xfa/fxfa/parser/cxfa_simple_parser.cpp b/xfa/fxfa/parser/cxfa_simple_parser.cpp
index a59ea9d..7021285 100644
--- a/xfa/fxfa/parser/cxfa_simple_parser.cpp
+++ b/xfa/fxfa/parser/cxfa_simple_parser.cpp
@@ -339,8 +339,8 @@
   m_pFactory = pFactory;
 }
 
-void CXFA_SimpleParser::StartParse(const RetainPtr<IFX_SeekableStream>& pStream,
-                                   XFA_PacketType ePacketID) {
+int32_t CXFA_SimpleParser::Parse(const RetainPtr<IFX_SeekableStream>& pStream,
+                                 XFA_PacketType ePacketID) {
   CloseParser();
   m_pFileRead = pStream;
   m_pStream = pdfium::MakeRetain<CFX_SeekableStreamProxy>(pStream, false);
@@ -351,13 +351,7 @@
   }
 
   m_pXMLDoc = pdfium::MakeUnique<CFX_XMLDoc>(m_pStream);
-
-  m_bParseStarted = true;
-  m_ePacketID = ePacketID;
-}
-
-int32_t CXFA_SimpleParser::DoParse() {
-  if (!m_pXMLDoc || !m_bParseStarted)
+  if (!m_pXMLDoc)
     return XFA_PARSESTATUS_StatusErr;
 
   int32_t iRet = m_pXMLDoc->DoLoad();
@@ -366,7 +360,7 @@
   if (iRet < 100)
     return iRet / 2;
 
-  m_pRootNode = ParseAsXDPPacket(GetDocumentNode(m_pXMLDoc.get()), m_ePacketID);
+  m_pRootNode = ParseAsXDPPacket(GetDocumentNode(m_pXMLDoc.get()), ePacketID);
   m_pXMLDoc->CloseXML();
   m_pStream.Reset();
 
diff --git a/xfa/fxfa/parser/cxfa_simple_parser.h b/xfa/fxfa/parser/cxfa_simple_parser.h
index c5c3ead..cef9c9a 100644
--- a/xfa/fxfa/parser/cxfa_simple_parser.h
+++ b/xfa/fxfa/parser/cxfa_simple_parser.h
@@ -25,9 +25,9 @@
   explicit CXFA_SimpleParser(CXFA_Document* pFactory);
   ~CXFA_SimpleParser();
 
-  void StartParse(const RetainPtr<IFX_SeekableStream>& pStream,
-                  XFA_PacketType ePacketID);
-  int32_t DoParse();
+  int32_t Parse(const RetainPtr<IFX_SeekableStream>& pStream,
+                XFA_PacketType ePacketID);
+
   CFX_XMLNode* ParseXMLData(const ByteString& wsXML);
   void ConstructXFANode(CXFA_Node* pXFANode, CFX_XMLNode* pXMLNode);
   CXFA_Node* GetRootNode() const;
@@ -77,8 +77,6 @@
   UnownedPtr<CXFA_Document> m_pFactory;
   // TODO(dsinclair): Figure out who owns this.
   CXFA_Node* m_pRootNode = nullptr;
-  XFA_PacketType m_ePacketID = XFA_PacketType::User;
-  bool m_bParseStarted = false;
   const bool m_bDocumentParser;
 };