diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2017-04-04 15:10:00 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-04-04 19:54:55 +0000 |
commit | 93bfc262074abf003ba4ab0ff1d9767d8dfa9a3d (patch) | |
tree | fd2c2c9d0a99923d397501f85e780498928a7e35 /xfa/fde/xml/cfde_xmlelement.cpp | |
parent | b2fb20e0f8e7ea368c541d35ccb61506041f7ddd (diff) | |
download | pdfium-93bfc262074abf003ba4ab0ff1d9767d8dfa9a3d.tar.xz |
Cleanup CFDE_XMLCharData and CFDE_XMLText
This Cl switchs CFDE_XMLCharData to subclass CFDE_XMLText and cleans up
the code which was the same except for the accessor names.
Change-Id: I85ebf4f3f19f0d15be4dd77a71b89ca8083f4b1e
Reviewed-on: https://pdfium-review.googlesource.com/3672
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
Diffstat (limited to 'xfa/fde/xml/cfde_xmlelement.cpp')
-rw-r--r-- | xfa/fde/xml/cfde_xmlelement.cpp | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/xfa/fde/xml/cfde_xmlelement.cpp b/xfa/fde/xml/cfde_xmlelement.cpp index aca27c50e3..646eea2ee2 100644 --- a/xfa/fde/xml/cfde_xmlelement.cpp +++ b/xfa/fde/xml/cfde_xmlelement.cpp @@ -7,6 +7,7 @@ #include "xfa/fde/xml/cfde_xmlelement.h" #include "core/fxcrt/fx_ext.h" +#include "third_party/base/ptr_util.h" #include "third_party/base/stl_util.h" #include "xfa/fde/xml/cfde_xmlchardata.h" #include "xfa/fde/xml/cfde_xmltext.h" @@ -22,29 +23,23 @@ FDE_XMLNODETYPE CFDE_XMLElement::GetType() const { return FDE_XMLNODE_Element; } -CFDE_XMLNode* CFDE_XMLElement::Clone(bool bRecursive) { - CFDE_XMLElement* pClone = new CFDE_XMLElement(m_wsTag); - if (!pClone) - return nullptr; - +std::unique_ptr<CFDE_XMLNode> CFDE_XMLElement::Clone() { + auto pClone = pdfium::MakeUnique<CFDE_XMLElement>(m_wsTag); pClone->m_Attributes = m_Attributes; - if (bRecursive) { - CloneChildren(pClone); - } else { - CFX_WideString wsText; - CFDE_XMLNode* pChild = m_pChild; - while (pChild) { - switch (pChild->GetType()) { - case FDE_XMLNODE_Text: - wsText += ((CFDE_XMLText*)pChild)->m_wsText; - break; - default: - break; - } - pChild = pChild->m_pNext; + + CFX_WideString wsText; + CFDE_XMLNode* pChild = m_pChild; + while (pChild) { + switch (pChild->GetType()) { + case FDE_XMLNODE_Text: + wsText += static_cast<CFDE_XMLText*>(pChild)->GetText(); + break; + default: + break; } - pClone->SetTextData(wsText); + pChild = pChild->m_pNext; } + pClone->SetTextData(wsText); return pClone; } @@ -202,10 +197,8 @@ void CFDE_XMLElement::GetTextData(CFX_WideString& wsText) const { while (pChild) { switch (pChild->GetType()) { case FDE_XMLNODE_Text: - buffer << ((CFDE_XMLText*)pChild)->m_wsText; - break; case FDE_XMLNODE_CharData: - buffer << ((CFDE_XMLCharData*)pChild)->m_wsCharData; + buffer << static_cast<CFDE_XMLText*>(pChild)->GetText(); break; default: break; |