diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2018-04-09 17:27:55 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-04-09 17:27:55 +0000 |
commit | d936d2931d86eb029feadd8aefbd3c7e51264a64 (patch) | |
tree | 6325dcc800614ef8c69e07b7ba90ccc83a836c0b /core | |
parent | 6f26db4dcbc64cc3602ffe22d1178a1abca83c96 (diff) | |
download | pdfium-d936d2931d86eb029feadd8aefbd3c7e51264a64.tar.xz |
Move the CFX_XMLParser out of CXFA_SimpleParser
This CL removes the CFX_XMLParser from CXFA_SimpleParser and constructs
it in the CFX_XMLDoc.
Change-Id: Id69b396f091892170a4c4654ac1d0fd65d1efbb6
Reviewed-on: https://pdfium-review.googlesource.com/29970
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core')
-rw-r--r-- | core/fxcrt/xml/cfx_xmldoc.cpp | 20 | ||||
-rw-r--r-- | core/fxcrt/xml/cfx_xmldoc.h | 5 |
2 files changed, 8 insertions, 17 deletions
diff --git a/core/fxcrt/xml/cfx_xmldoc.cpp b/core/fxcrt/xml/cfx_xmldoc.cpp index 236ab05c37..64ed5a98d0 100644 --- a/core/fxcrt/xml/cfx_xmldoc.cpp +++ b/core/fxcrt/xml/cfx_xmldoc.cpp @@ -18,24 +18,17 @@ #include "third_party/base/ptr_util.h" #include "third_party/base/stl_util.h" -CFX_XMLDoc::CFX_XMLDoc() - : m_iStatus(0), m_pRoot(pdfium::MakeUnique<CFX_XMLNode>()) { +CFX_XMLDoc::CFX_XMLDoc(const RetainPtr<CFX_SeekableStreamProxy>& pStream) + : m_iStatus(0), + m_pRoot(pdfium::MakeUnique<CFX_XMLNode>()), + m_pXMLParser(pdfium::MakeUnique<CFX_XMLParser>(m_pRoot.get(), pStream)) { + ASSERT(pStream); + m_pRoot->AppendChild(new CFX_XMLInstruction(L"xml")); } CFX_XMLDoc::~CFX_XMLDoc() {} -bool CFX_XMLDoc::LoadXML(std::unique_ptr<CFX_XMLParser> pXMLParser) { - if (!pXMLParser) - return false; - - m_iStatus = 0; - m_pStream.Reset(); - m_pRoot->DeleteChildren(); - m_pXMLParser = std::move(pXMLParser); - return true; -} - int32_t CFX_XMLDoc::DoLoad() { if (m_iStatus < 100) m_iStatus = m_pXMLParser->DoParser(); @@ -46,4 +39,3 @@ int32_t CFX_XMLDoc::DoLoad() { void CFX_XMLDoc::CloseXML() { m_pXMLParser.reset(); } - diff --git a/core/fxcrt/xml/cfx_xmldoc.h b/core/fxcrt/xml/cfx_xmldoc.h index 8ab6b8fea4..07be2d4e84 100644 --- a/core/fxcrt/xml/cfx_xmldoc.h +++ b/core/fxcrt/xml/cfx_xmldoc.h @@ -16,20 +16,19 @@ class CFX_XMLDoc { public: - CFX_XMLDoc(); + explicit CFX_XMLDoc(const RetainPtr<CFX_SeekableStreamProxy>& pStream); ~CFX_XMLDoc(); - bool LoadXML(std::unique_ptr<CFX_XMLParser> pXMLParser); int32_t DoLoad(); void CloseXML(); CFX_XMLNode* GetRoot() const { return m_pRoot.get(); } + CFX_XMLParser* GetParser() const { return m_pXMLParser.get(); } private: int32_t m_iStatus; std::unique_ptr<CFX_XMLNode> m_pRoot; std::unique_ptr<CFX_XMLParser> m_pXMLParser; - RetainPtr<CFX_SeekableStreamProxy> m_pStream; }; #endif // CORE_FXCRT_XML_CFX_XMLDOC_H_ |