diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2017-10-05 12:11:03 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-10-05 17:04:48 +0000 |
commit | 5e2cfb5310c9b25a5ce4c772a6656373309bc956 (patch) | |
tree | daba5cee8c19d5035d532c4d47c0993f1cdae868 /core/fxcrt/xml | |
parent | 41bf73a2c389d8fa811cabb1867b8b6a5585d5eb (diff) | |
download | pdfium-5e2cfb5310c9b25a5ce4c772a6656373309bc956.tar.xz |
Remove friends from CXML_Element
This CL removes the friends from CXML_Element and adds accessors as
needed.
Change-Id: I4f76935caa753a063bef4ff2d043273ae4e14e14
Reviewed-on: https://pdfium-review.googlesource.com/15535
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fxcrt/xml')
-rw-r--r-- | core/fxcrt/xml/cxml_element.h | 14 | ||||
-rw-r--r-- | core/fxcrt/xml/cxml_parser.cpp | 7 |
2 files changed, 14 insertions, 7 deletions
diff --git a/core/fxcrt/xml/cxml_element.h b/core/fxcrt/xml/cxml_element.h index 40ebe385b7..a851a86f1c 100644 --- a/core/fxcrt/xml/cxml_element.h +++ b/core/fxcrt/xml/cxml_element.h @@ -8,6 +8,7 @@ #define CORE_FXCRT_XML_CXML_ELEMENT_H_ #include <memory> +#include <utility> #include <vector> #include "core/fxcrt/xml/cxml_attrmap.h" @@ -87,6 +88,10 @@ class CXML_Element : public CXML_Object { return attr; } + void AppendChild(std::unique_ptr<CXML_Object> child) { + m_Children.push_back(std::move(child)); + } + uint32_t CountChildren() const { return m_Children.size(); } uint32_t CountElements(const ByteStringView& space, const ByteStringView& tag) const; @@ -98,10 +103,13 @@ class CXML_Element : public CXML_Object { void SetTag(const ByteStringView& qTagName); void RemoveChild(uint32_t index); - private: - friend class CXML_Parser; - friend class CXML_Composer; + void SetAttribute(const ByteString& space, + const ByteString& name, + const WideString& value) { + m_AttrMap.SetAt(space, name, value); + } + private: UnownedPtr<const CXML_Element> const m_pParent; ByteString m_QSpaceName; ByteString m_TagName; diff --git a/core/fxcrt/xml/cxml_parser.cpp b/core/fxcrt/xml/cxml_parser.cpp index adf83c7148..062b5bec07 100644 --- a/core/fxcrt/xml/cxml_parser.cpp +++ b/core/fxcrt/xml/cxml_parser.cpp @@ -424,7 +424,7 @@ std::unique_ptr<CXML_Element> CXML_Parser::ParseElementInternal( WideString attr_value; GetAttrValue(attr_value); - pElement->m_AttrMap.SetAt(attr_space, attr_name, attr_value); + pElement->SetAttribute(attr_space, attr_name, attr_value); } m_nOffset = m_nBufferOffset + static_cast<FX_FILESIZE>(m_dwIndex); if (m_dwIndex < m_dwBufferSize || IsEOF()) @@ -498,7 +498,7 @@ std::unique_ptr<CXML_Element> CXML_Parser::ParseElementInternal( if (!pSubElement) break; - pElement->m_Children.push_back(std::move(pSubElement)); + pElement->AppendChild(std::move(pSubElement)); SkipWhiteSpaces(); } break; @@ -541,6 +541,5 @@ void CXML_Parser::InsertContentSegment(bool bCDATA, if (content.IsEmpty()) return; - pElement->m_Children.push_back( - pdfium::MakeUnique<CXML_Content>(bCDATA, content)); + pElement->AppendChild(pdfium::MakeUnique<CXML_Content>(bCDATA, content)); } |