summaryrefslogtreecommitdiff
path: root/xfa/fde/xml/cfde_xmlelement.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-04-04 15:10:00 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-04-04 19:54:55 +0000
commit93bfc262074abf003ba4ab0ff1d9767d8dfa9a3d (patch)
treefd2c2c9d0a99923d397501f85e780498928a7e35 /xfa/fde/xml/cfde_xmlelement.cpp
parentb2fb20e0f8e7ea368c541d35ccb61506041f7ddd (diff)
downloadpdfium-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.cpp39
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;