From 5fa4e981ed6c431d86c51a74eba19ea4b816f541 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Wed, 5 Apr 2017 11:48:21 -0400 Subject: Move XML attribute handling to a base class. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This CL moves the attribute handling out of CFDE_XMLElement and CFDE_XMLInstruction into a common CFDE_XMLAttributeNode. The handling is also converted to a std::map from either a) a vector storing name,value,name,value or b) two vectors one for names and the other for values. The unused Get/Set methods for interger and float are removed and the iteration is converted to use iterators. Change-Id: Icda00ae898a595d58b06af0ced337f55f47c317c Reviewed-on: https://pdfium-review.googlesource.com/3753 Reviewed-by: Nicolás Peña Commit-Queue: dsinclair --- xfa/fxfa/app/cxfa_textlayout.cpp | 8 +++----- xfa/fxfa/app/cxfa_textparser.cpp | 14 +++++--------- 2 files changed, 8 insertions(+), 14 deletions(-) (limited to 'xfa/fxfa/app') diff --git a/xfa/fxfa/app/cxfa_textlayout.cpp b/xfa/fxfa/app/cxfa_textlayout.cpp index c32717b523..880bdf4585 100644 --- a/xfa/fxfa/app/cxfa_textlayout.cpp +++ b/xfa/fxfa/app/cxfa_textlayout.cpp @@ -81,8 +81,7 @@ CFDE_XMLNode* CXFA_TextLayout::GetXMLContainerNode() { pXMLChild = pXMLChild->GetNodeItem(CFDE_XMLNode::NextSibling)) { if (pXMLChild->GetType() == FDE_XMLNODE_Element) { CFDE_XMLElement* pXMLElement = static_cast(pXMLChild); - CFX_WideString wsTag; - pXMLElement->GetLocalTagName(wsTag); + CFX_WideString wsTag = pXMLElement->GetLocalTagName(); if (wsTag == L"body" || wsTag == L"html") { pXMLContainer = pXMLChild; break; @@ -727,7 +726,7 @@ bool CXFA_TextLayout::LoadRichText( bContentNode = true; } else if (pXMLNode->GetType() == FDE_XMLNODE_Element) { pElement = static_cast(pXMLNode); - pElement->GetLocalTagName(wsName); + wsName = pElement->GetLocalTagName(); } if (wsName == L"ol") { bIsOl = true; @@ -757,9 +756,8 @@ bool CXFA_TextLayout::LoadRichText( } if (wsName == L"a") { - CFX_WideString wsLinkContent; ASSERT(pElement); - pElement->GetString(L"href", wsLinkContent); + CFX_WideString wsLinkContent = pElement->GetString(L"href"); if (!wsLinkContent.IsEmpty()) { pLinkData = pdfium::MakeRetain( wsLinkContent.GetBuffer(wsLinkContent.GetLength())); diff --git a/xfa/fxfa/app/cxfa_textparser.cpp b/xfa/fxfa/app/cxfa_textparser.cpp index b4032fa5c7..6f394dd5e2 100644 --- a/xfa/fxfa/app/cxfa_textparser.cpp +++ b/xfa/fxfa/app/cxfa_textparser.cpp @@ -277,12 +277,11 @@ std::unique_ptr CXFA_TextParser::ParseTagInfo( CFX_WideString wsName; if (pXMLNode->GetType() == FDE_XMLNODE_Element) { CFDE_XMLElement* pXMLElement = static_cast(pXMLNode); - pXMLElement->GetLocalTagName(wsName); + wsName = pXMLElement->GetLocalTagName(); tagProvider->SetTagName(wsName); tagProvider->m_bTagAvailable = TagValidate(wsName); - CFX_WideString wsValue; - pXMLElement->GetString(L"style", wsValue); + CFX_WideString wsValue = pXMLElement->GetString(L"style"); if (!wsValue.IsEmpty()) tagProvider->SetAttribute(L"style", wsValue); } else if (pXMLNode->GetType() == FDE_XMLNODE_Text) { @@ -500,15 +499,13 @@ bool CXFA_TextParser::GetEmbbedObj(CXFA_TextProvider* pTextProvider, bool bRet = false; if (pXMLNode->GetType() == FDE_XMLNODE_Element) { CFDE_XMLElement* pElement = static_cast(pXMLNode); - CFX_WideString wsAttr; - pElement->GetString(L"xfa:embed", wsAttr); + CFX_WideString wsAttr = pElement->GetString(L"xfa:embed"); if (wsAttr.IsEmpty()) return false; if (wsAttr.GetAt(0) == L'#') wsAttr.Delete(0); - CFX_WideString ws; - pElement->GetString(L"xfa:embedType", ws); + CFX_WideString ws = pElement->GetString(L"xfa:embedType"); if (ws.IsEmpty()) ws = L"som"; else @@ -518,8 +515,7 @@ bool CXFA_TextParser::GetEmbbedObj(CXFA_TextProvider* pTextProvider, if (!bURI && ws != L"som") return false; - ws.clear(); - pElement->GetString(L"xfa:embedMode", ws); + ws = pElement->GetString(L"xfa:embedMode"); if (ws.IsEmpty()) ws = L"formatted"; else -- cgit v1.2.3