Merge XMLSyntaxParser Init into constructor

This Init() method is always called right after construction. Merge
together for clarity.

Change-Id: Iab5bfe937e82b7a310e373dd139399bc1be7cea6
Reviewed-on: https://pdfium-review.googlesource.com/3814
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
diff --git a/xfa/fde/xml/cfde_xmlparser.cpp b/xfa/fde/xml/cfde_xmlparser.cpp
index f4d2a0f..5b8993d 100644
--- a/xfa/fde/xml/cfde_xmlparser.cpp
+++ b/xfa/fde/xml/cfde_xmlparser.cpp
@@ -20,13 +20,12 @@
       m_dwCheckStatus(0),
       m_dwCurrentCheckStatus(0),
       m_pStream(pStream),
-      m_pParser(pdfium::MakeUnique<CFDE_XMLSyntaxParser>()),
+      m_pParser(pdfium::MakeUnique<CFDE_XMLSyntaxParser>(m_pStream)),
       m_pParent(pParent),
       m_pChild(nullptr),
       m_syntaxParserResult(FDE_XmlSyntaxResult::None) {
   ASSERT(m_pParent && m_pStream);
   m_NodeStack.push(m_pParent);
-  m_pParser->Init(m_pStream, 32 * 1024);
 }
 
 CFDE_XMLParser::~CFDE_XMLParser() {}
diff --git a/xfa/fde/xml/cfde_xmlsyntaxparser.cpp b/xfa/fde/xml/cfde_xmlsyntaxparser.cpp
index 93f8f1d..ea4af42 100644
--- a/xfa/fde/xml/cfde_xmlsyntaxparser.cpp
+++ b/xfa/fde/xml/cfde_xmlsyntaxparser.cpp
@@ -77,9 +77,10 @@
 
 }  // namespace
 
-CFDE_XMLSyntaxParser::CFDE_XMLSyntaxParser()
-    : m_pStream(nullptr),
-      m_iXMLPlaneSize(-1),
+CFDE_XMLSyntaxParser::CFDE_XMLSyntaxParser(
+    const CFX_RetainPtr<IFGAS_Stream>& pStream)
+    : m_pStream(pStream),
+      m_iXMLPlaneSize(32 * 1024),
       m_iCurrentPos(0),
       m_iCurrentNodeNum(-1),
       m_iLastNodeNum(-1),
@@ -99,21 +100,15 @@
       m_syntaxParserState(FDE_XmlSyntaxState::Text),
       m_wQuotationMark(0),
       m_iEntityStart(-1) {
+  ASSERT(pStream);
+
   m_CurNode.iNodeNum = -1;
   m_CurNode.eNodeType = FDE_XMLNODE_Unknown;
-}
 
-void CFDE_XMLSyntaxParser::Init(const CFX_RetainPtr<IFGAS_Stream>& pStream,
-                                int32_t iXMLPlaneSize) {
-  ASSERT(!m_pStream && !m_pBuffer);
-  ASSERT(pStream && iXMLPlaneSize > 0);
-  int32_t iStreamLength = pStream->GetLength();
-  ASSERT(iStreamLength > 0);
-  m_pStream = pStream;
-  m_iXMLPlaneSize = std::min(iXMLPlaneSize, iStreamLength);
+  m_iXMLPlaneSize = std::min(m_iXMLPlaneSize, m_pStream->GetLength());
+
   uint8_t bom[4];
   m_iCurrentPos = m_pStream->GetBOM(bom);
-  ASSERT(!m_pBuffer);
 
   FX_SAFE_INT32 alloc_size_safe = m_iXMLPlaneSize;
   alloc_size_safe += 1;  // For NUL.
@@ -124,14 +119,12 @@
 
   m_pBuffer = FX_Alloc(
       wchar_t, pdfium::base::ValueOrDieForType<size_t>(alloc_size_safe));
-  m_pStart = m_pEnd = m_pBuffer;
+  m_pStart = m_pBuffer;
+  m_pEnd = m_pBuffer;
 
-  ASSERT(!m_BlockBuffer.IsInitialized());
   m_BlockBuffer.InitBuffer();
   std::tie(m_pCurrentBlock, m_iIndexInBlock) =
       m_BlockBuffer.GetAvailableBlock();
-  m_iParsedBytes = m_iParsedChars = 0;
-  m_iBufferChars = 0;
 }
 
 FDE_XmlSyntaxResult CFDE_XMLSyntaxParser::DoSyntaxParse() {
@@ -600,7 +593,6 @@
 }
 
 CFDE_XMLSyntaxParser::~CFDE_XMLSyntaxParser() {
-  m_pCurrentBlock = nullptr;
   FX_Free(m_pBuffer);
 }
 
diff --git a/xfa/fde/xml/cfde_xmlsyntaxparser.h b/xfa/fde/xml/cfde_xmlsyntaxparser.h
index 9140a83..ef2cd27 100644
--- a/xfa/fde/xml/cfde_xmlsyntaxparser.h
+++ b/xfa/fde/xml/cfde_xmlsyntaxparser.h
@@ -35,11 +35,9 @@
 
 class CFDE_XMLSyntaxParser {
  public:
-  CFDE_XMLSyntaxParser();
+  explicit CFDE_XMLSyntaxParser(const CFX_RetainPtr<IFGAS_Stream>& pStream);
   ~CFDE_XMLSyntaxParser();
 
-  void Init(const CFX_RetainPtr<IFGAS_Stream>& pStream, int32_t iXMLPlaneSize);
-
   FDE_XmlSyntaxResult DoSyntaxParse();
 
   int32_t GetStatus() const;
diff --git a/xfa/fde/xml/cfde_xmlsyntaxparser_unittest.cpp b/xfa/fde/xml/cfde_xmlsyntaxparser_unittest.cpp
index e7e6894..e54b2ce 100644
--- a/xfa/fde/xml/cfde_xmlsyntaxparser_unittest.cpp
+++ b/xfa/fde/xml/cfde_xmlsyntaxparser_unittest.cpp
@@ -28,8 +28,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -76,8 +75,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -113,8 +111,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
 
@@ -148,8 +145,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -178,8 +174,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -208,8 +203,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -238,8 +232,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -275,8 +268,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -309,8 +301,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -343,8 +334,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -377,8 +367,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -405,8 +394,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -437,8 +425,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -469,8 +456,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());
@@ -501,8 +487,7 @@
   size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
       reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
-  CFDE_XMLSyntaxParser parser;
-  parser.Init(stream, 256);
+  CFDE_XMLSyntaxParser parser(stream);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
   EXPECT_EQ(FDE_XmlSyntaxResult::TagName, parser.DoSyntaxParse());
   EXPECT_EQ(L"script", parser.GetTagName());