From 51709bea3ce113df7d36a5fe6415036e26fc3236 Mon Sep 17 00:00:00 2001 From: tsepez Date: Thu, 8 Dec 2016 10:55:57 -0800 Subject: Replace CFX_WideStringArray with std::vector Minimalist changes with the tidying of the code to use better loop iterators as a follow-up. Review-Url: https://codereview.chromium.org/2556963004 --- xfa/fde/css/fde_cssstyleselector.cpp | 8 ++- xfa/fde/css/fde_cssstyleselector.h | 2 +- xfa/fde/xml/fde_xml_imp.cpp | 117 ++++++++++++++++++----------------- xfa/fde/xml/fde_xml_imp.h | 7 ++- 4 files changed, 71 insertions(+), 63 deletions(-) (limited to 'xfa/fde') diff --git a/xfa/fde/css/fde_cssstyleselector.cpp b/xfa/fde/css/fde_cssstyleselector.cpp index 1bcd161f0c..117afcc7ab 100644 --- a/xfa/fde/css/fde_cssstyleselector.cpp +++ b/xfa/fde/css/fde_cssstyleselector.cpp @@ -9,6 +9,7 @@ #include #include +#include "third_party/base/stl_util.h" #include "xfa/fde/css/fde_csscache.h" #include "xfa/fde/css/fde_cssdeclaration.h" #include "xfa/fde/css/fde_cssstylesheet.h" @@ -1749,7 +1750,8 @@ IFDE_CSSParagraphStyle* CFDE_CSSComputedStyle::GetParagraphStyles() { bool CFDE_CSSComputedStyle::GetCustomStyle(const CFX_WideStringC& wsName, CFX_WideString& wsValue) const { - for (int32_t i = m_CustomProperties.GetSize() - 2; i > -1; i -= 2) { + for (int32_t i = pdfium::CollectionSize(m_CustomProperties) - 2; + i > -1; i -= 2) { if (wsName == m_CustomProperties[i]) { wsValue = m_CustomProperties[i + 1]; return true; @@ -1895,8 +1897,8 @@ void CFDE_CSSComputedStyle::SetLetterSpacing( void CFDE_CSSComputedStyle::AddCustomStyle(const CFX_WideString& wsName, const CFX_WideString& wsValue) { - m_CustomProperties.Add(wsName); - m_CustomProperties.Add(wsValue); + m_CustomProperties.push_back(wsName); + m_CustomProperties.push_back(wsValue); } CFDE_CSSInheritedData::CFDE_CSSInheritedData() { diff --git a/xfa/fde/css/fde_cssstyleselector.h b/xfa/fde/css/fde_cssstyleselector.h index 0096b7a34a..81566a93b1 100644 --- a/xfa/fde/css/fde_cssstyleselector.h +++ b/xfa/fde/css/fde_cssstyleselector.h @@ -414,7 +414,7 @@ class CFDE_CSSComputedStyle : public IFDE_CSSComputedStyle, IFX_MemoryAllocator* const m_pAllocator; CFDE_CSSInheritedData m_InheritedData; CFDE_CSSNonInheritedData m_NonInheritedData; - CFX_WideStringArray m_CustomProperties; + std::vector m_CustomProperties; }; #endif // XFA_FDE_CSS_FDE_CSSSTYLESELECTOR_H_ diff --git a/xfa/fde/xml/fde_xml_imp.cpp b/xfa/fde/xml/fde_xml_imp.cpp index 7880804367..2bdaf5155f 100644 --- a/xfa/fde/xml/fde_xml_imp.cpp +++ b/xfa/fde/xml/fde_xml_imp.cpp @@ -11,6 +11,7 @@ #include "core/fxcrt/fx_ext.h" #include "core/fxcrt/fx_safe_types.h" +#include "third_party/base/stl_util.h" #include "xfa/fgas/crt/fgas_codepage.h" namespace { @@ -416,8 +417,9 @@ void CFDE_XMLNode::SaveXMLNode(const CFX_RetainPtr& pXMLStream) { } else { ws.Format(L"m_wsTarget.c_str()); pXMLStream->WriteString(ws.c_str(), ws.GetLength()); - CFX_WideStringArray& attributes = pInstruction->m_Attributes; - int32_t i, iCount = attributes.GetSize(); + std::vector& attributes = pInstruction->m_Attributes; + int32_t i; + int32_t iCount = pdfium::CollectionSize(attributes); CFX_WideString wsValue; for (i = 0; i < iCount; i += 2) { ws = L" "; @@ -433,8 +435,8 @@ void CFDE_XMLNode::SaveXMLNode(const CFX_RetainPtr& pXMLStream) { ws += L"\""; pXMLStream->WriteString(ws.c_str(), ws.GetLength()); } - CFX_WideStringArray& targetdata = pInstruction->m_TargetData; - iCount = targetdata.GetSize(); + std::vector& targetdata = pInstruction->m_TargetData; + iCount = pdfium::CollectionSize(targetdata); for (i = 0; i < iCount; i++) { ws = L" \""; ws += targetdata[i]; @@ -450,8 +452,9 @@ void CFDE_XMLNode::SaveXMLNode(const CFX_RetainPtr& pXMLStream) { ws = L"<"; ws += ((CFDE_XMLElement*)pNode)->m_wsTag; pXMLStream->WriteString(ws.c_str(), ws.GetLength()); - CFX_WideStringArray& attributes = ((CFDE_XMLElement*)pNode)->m_Attributes; - int32_t iCount = attributes.GetSize(); + std::vector& attributes = + static_cast(pNode)->m_Attributes; + int32_t iCount = pdfium::CollectionSize(attributes); CFX_WideString wsValue; for (int32_t i = 0; i < iCount; i += 2) { ws = L" "; @@ -536,25 +539,25 @@ FDE_XMLNODETYPE CFDE_XMLInstruction::GetType() const { CFDE_XMLNode* CFDE_XMLInstruction::Clone(bool bRecursive) { CFDE_XMLInstruction* pClone = new CFDE_XMLInstruction(m_wsTarget); - if (!pClone) { - return pClone; - } - pClone->m_Attributes.Copy(m_Attributes); - pClone->m_TargetData.Copy(m_TargetData); - if (bRecursive) { + if (!pClone) + return nullptr; + + pClone->m_Attributes = m_Attributes; + pClone->m_TargetData = m_TargetData; + if (bRecursive) CloneChildren(pClone); - } + return pClone; } int32_t CFDE_XMLInstruction::CountAttributes() const { - return m_Attributes.GetSize() / 2; + return pdfium::CollectionSize(m_Attributes) / 2; } bool CFDE_XMLInstruction::GetAttribute(int32_t index, CFX_WideString& wsAttriName, CFX_WideString& wsAttriValue) const { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); ASSERT(index > -1 && index < iCount / 2); for (int32_t i = 0; i < iCount; i += 2) { if (index == 0) { @@ -568,7 +571,7 @@ bool CFDE_XMLInstruction::GetAttribute(int32_t index, } bool CFDE_XMLInstruction::HasAttribute(const FX_WCHAR* pwsAttriName) const { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { if (m_Attributes[i].Compare(pwsAttriName) == 0) { return true; @@ -580,7 +583,7 @@ bool CFDE_XMLInstruction::HasAttribute(const FX_WCHAR* pwsAttriName) const { void CFDE_XMLInstruction::GetString(const FX_WCHAR* pwsAttriName, CFX_WideString& wsAttriValue, const FX_WCHAR* pwsDefValue) const { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { if (m_Attributes[i].Compare(pwsAttriName) == 0) { wsAttriValue = m_Attributes[i + 1]; @@ -593,7 +596,7 @@ void CFDE_XMLInstruction::GetString(const FX_WCHAR* pwsAttriName, void CFDE_XMLInstruction::SetString(const CFX_WideString& wsAttriName, const CFX_WideString& wsAttriValue) { ASSERT(wsAttriName.GetLength() > 0); - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { if (m_Attributes[i].Compare(wsAttriName) == 0) { m_Attributes[i] = wsAttriName; @@ -601,13 +604,13 @@ void CFDE_XMLInstruction::SetString(const CFX_WideString& wsAttriName, return; } } - m_Attributes.Add(wsAttriName); - m_Attributes.Add(wsAttriValue); + m_Attributes.push_back(wsAttriName); + m_Attributes.push_back(wsAttriValue); } int32_t CFDE_XMLInstruction::GetInteger(const FX_WCHAR* pwsAttriName, int32_t iDefValue) const { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { if (m_Attributes[i].Compare(pwsAttriName) == 0) { return FXSYS_wtoi(m_Attributes[i + 1].c_str()); @@ -625,7 +628,7 @@ void CFDE_XMLInstruction::SetInteger(const FX_WCHAR* pwsAttriName, FX_FLOAT CFDE_XMLInstruction::GetFloat(const FX_WCHAR* pwsAttriName, FX_FLOAT fDefValue) const { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { if (m_Attributes[i].Compare(pwsAttriName) == 0) { return FXSYS_wcstof(m_Attributes[i + 1].c_str(), -1, nullptr); @@ -642,34 +645,37 @@ void CFDE_XMLInstruction::SetFloat(const FX_WCHAR* pwsAttriName, } void CFDE_XMLInstruction::RemoveAttribute(const FX_WCHAR* pwsAttriName) { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { if (m_Attributes[i].Compare(pwsAttriName) == 0) { - m_Attributes.RemoveAt(i + 1); - m_Attributes.RemoveAt(i); + m_Attributes.erase(m_Attributes.begin() + i, + m_Attributes.begin() + i + 2); return; } } } int32_t CFDE_XMLInstruction::CountData() const { - return m_TargetData.GetSize(); + return pdfium::CollectionSize(m_TargetData); } bool CFDE_XMLInstruction::GetData(int32_t index, CFX_WideString& wsData) const { - if (index < 0 || index >= m_TargetData.GetSize()) { + if (index < 0 || index >= pdfium::CollectionSize(m_TargetData)) return false; - } + wsData = m_TargetData[index]; return true; } void CFDE_XMLInstruction::AppendData(const CFX_WideString& wsData) { - m_TargetData.Add(wsData); + m_TargetData.push_back(wsData); } void CFDE_XMLInstruction::RemoveData(int32_t index) { - m_TargetData.RemoveAt(index); + if (index < 0 || index >= pdfium::CollectionSize(m_TargetData)) + return; + + m_TargetData.erase(m_TargetData.begin() + index); } CFDE_XMLInstruction::~CFDE_XMLInstruction() {} @@ -679,9 +685,7 @@ CFDE_XMLElement::CFDE_XMLElement(const CFX_WideString& wsTag) ASSERT(m_wsTag.GetLength() > 0); } -CFDE_XMLElement::~CFDE_XMLElement() { - m_Attributes.RemoveAll(); -} +CFDE_XMLElement::~CFDE_XMLElement() {} void CFDE_XMLElement::Release() { delete this; @@ -693,10 +697,10 @@ FDE_XMLNODETYPE CFDE_XMLElement::GetType() const { CFDE_XMLNode* CFDE_XMLElement::Clone(bool bRecursive) { CFDE_XMLElement* pClone = new CFDE_XMLElement(m_wsTag); - if (!pClone) { + if (!pClone) return nullptr; - } - pClone->m_Attributes.Copy(m_Attributes); + + pClone->m_Attributes = m_Attributes; if (bRecursive) { CloneChildren(pClone); } else { @@ -763,13 +767,13 @@ void CFDE_XMLElement::GetNamespaceURI(CFX_WideString& wsNamespace) const { } int32_t CFDE_XMLElement::CountAttributes() const { - return m_Attributes.GetSize() / 2; + return pdfium::CollectionSize(m_Attributes) / 2; } bool CFDE_XMLElement::GetAttribute(int32_t index, CFX_WideString& wsAttriName, CFX_WideString& wsAttriValue) const { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); ASSERT(index > -1 && index < iCount / 2); for (int32_t i = 0; i < iCount; i += 2) { if (index == 0) { @@ -783,11 +787,10 @@ bool CFDE_XMLElement::GetAttribute(int32_t index, } bool CFDE_XMLElement::HasAttribute(const FX_WCHAR* pwsAttriName) const { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { - if (m_Attributes[i].Compare(pwsAttriName) == 0) { + if (m_Attributes[i].Compare(pwsAttriName) == 0) return true; - } } return false; } @@ -795,7 +798,7 @@ bool CFDE_XMLElement::HasAttribute(const FX_WCHAR* pwsAttriName) const { void CFDE_XMLElement::GetString(const FX_WCHAR* pwsAttriName, CFX_WideString& wsAttriValue, const FX_WCHAR* pwsDefValue) const { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { if (m_Attributes[i].Compare(pwsAttriName) == 0) { wsAttriValue = m_Attributes[i + 1]; @@ -808,7 +811,7 @@ void CFDE_XMLElement::GetString(const FX_WCHAR* pwsAttriName, void CFDE_XMLElement::SetString(const CFX_WideString& wsAttriName, const CFX_WideString& wsAttriValue) { ASSERT(wsAttriName.GetLength() > 0); - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { if (m_Attributes[i].Compare(wsAttriName) == 0) { m_Attributes[i] = wsAttriName; @@ -816,13 +819,13 @@ void CFDE_XMLElement::SetString(const CFX_WideString& wsAttriName, return; } } - m_Attributes.Add(wsAttriName); - m_Attributes.Add(wsAttriValue); + m_Attributes.push_back(wsAttriName); + m_Attributes.push_back(wsAttriValue); } int32_t CFDE_XMLElement::GetInteger(const FX_WCHAR* pwsAttriName, int32_t iDefValue) const { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { if (m_Attributes[i].Compare(pwsAttriName) == 0) { return FXSYS_wtoi(m_Attributes[i + 1].c_str()); @@ -840,7 +843,7 @@ void CFDE_XMLElement::SetInteger(const FX_WCHAR* pwsAttriName, FX_FLOAT CFDE_XMLElement::GetFloat(const FX_WCHAR* pwsAttriName, FX_FLOAT fDefValue) const { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { if (m_Attributes[i].Compare(pwsAttriName) == 0) { return FXSYS_wcstof(m_Attributes[i + 1].c_str(), -1, nullptr); @@ -857,11 +860,11 @@ void CFDE_XMLElement::SetFloat(const FX_WCHAR* pwsAttriName, } void CFDE_XMLElement::RemoveAttribute(const FX_WCHAR* pwsAttriName) { - int32_t iCount = m_Attributes.GetSize(); + int32_t iCount = pdfium::CollectionSize(m_Attributes); for (int32_t i = 0; i < iCount; i += 2) { if (m_Attributes[i].Compare(pwsAttriName) == 0) { - m_Attributes.RemoveAt(i + 1); - m_Attributes.RemoveAt(i); + m_Attributes.erase(m_Attributes.begin() + i, + m_Attributes.begin() + i + 2); return; } } @@ -1007,8 +1010,9 @@ void CFDE_XMLDoc::SaveXMLNode(const CFX_RetainPtr& pXMLStream, } else { ws.Format(L"m_wsTarget.c_str()); pXMLStream->WriteString(ws.c_str(), ws.GetLength()); - CFX_WideStringArray& attributes = pInstruction->m_Attributes; - int32_t i, iCount = attributes.GetSize(); + std::vector& attributes = pInstruction->m_Attributes; + int32_t i; + int32_t iCount = pdfium::CollectionSize(attributes); CFX_WideString wsValue; for (i = 0; i < iCount; i += 2) { ws = L" "; @@ -1024,8 +1028,8 @@ void CFDE_XMLDoc::SaveXMLNode(const CFX_RetainPtr& pXMLStream, ws += L"\""; pXMLStream->WriteString(ws.c_str(), ws.GetLength()); } - CFX_WideStringArray& targetdata = pInstruction->m_TargetData; - iCount = targetdata.GetSize(); + std::vector& targetdata = pInstruction->m_TargetData; + iCount = pdfium::CollectionSize(targetdata); for (i = 0; i < iCount; i++) { ws = L" \""; ws += targetdata[i]; @@ -1041,8 +1045,9 @@ void CFDE_XMLDoc::SaveXMLNode(const CFX_RetainPtr& pXMLStream, ws = L"<"; ws += ((CFDE_XMLElement*)pNode)->m_wsTag; pXMLStream->WriteString(ws.c_str(), ws.GetLength()); - CFX_WideStringArray& attributes = ((CFDE_XMLElement*)pNode)->m_Attributes; - int32_t iCount = attributes.GetSize(); + std::vector& attributes = + static_cast(pNode)->m_Attributes; + int32_t iCount = pdfium::CollectionSize(attributes); CFX_WideString wsValue; for (int32_t i = 0; i < iCount; i += 2) { ws = L" "; diff --git a/xfa/fde/xml/fde_xml_imp.h b/xfa/fde/xml/fde_xml_imp.h index 8571f1b9f1..126b0355a3 100644 --- a/xfa/fde/xml/fde_xml_imp.h +++ b/xfa/fde/xml/fde_xml_imp.h @@ -8,6 +8,7 @@ #define XFA_FDE_XML_FDE_XML_IMP_H_ #include +#include #include "core/fxcrt/fx_system.h" #include "xfa/fde/xml/fde_xml.h" @@ -105,8 +106,8 @@ class CFDE_XMLInstruction : public CFDE_XMLNode { void RemoveData(int32_t index); CFX_WideString m_wsTarget; - CFX_WideStringArray m_Attributes; - CFX_WideStringArray m_TargetData; + std::vector m_Attributes; + std::vector m_TargetData; }; class CFDE_XMLElement : public CFDE_XMLNode { @@ -148,7 +149,7 @@ class CFDE_XMLElement : public CFDE_XMLNode { void SetTextData(const CFX_WideString& wsText); CFX_WideString m_wsTag; - CFX_WideStringArray m_Attributes; + std::vector m_Attributes; }; class CFDE_XMLText : public CFDE_XMLNode { -- cgit v1.2.3