diff options
author | dan sinclair <dsinclair@chromium.org> | 2018-04-13 00:22:55 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-04-13 00:22:55 +0000 |
commit | 7afdad5ab7a1bd54ddf6f2a823be30d4b8e39567 (patch) | |
tree | a594f1a42c742187d2312e0143f96548186ca33a /core/fxcrt/xml/cfx_xmlinstruction.cpp | |
parent | c9f8d5af69e3b0bb6c8e58e74b61c016b2d099a1 (diff) | |
download | pdfium-7afdad5ab7a1bd54ddf6f2a823be30d4b8e39567.tar.xz |
Make CFX_XMLInstruction a subclass of CFX_XMLNode
The CFX_XMLInstruction handles the <?blah?> blocks at the top of an XML file.
It was inheriting from CFX_XMLAttributeNode in order to store the tag name. This
CL moves the tag name into CFX_XMLInstruction and subclasses from CFX_XMLNode.
Change-Id: I8f7ff0dde19ed43b46d095b0d45df4bf06875af5
Reviewed-on: https://pdfium-review.googlesource.com/30490
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'core/fxcrt/xml/cfx_xmlinstruction.cpp')
-rw-r--r-- | core/fxcrt/xml/cfx_xmlinstruction.cpp | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/core/fxcrt/xml/cfx_xmlinstruction.cpp b/core/fxcrt/xml/cfx_xmlinstruction.cpp index 35b68e4d7d..f3185fbf5b 100644 --- a/core/fxcrt/xml/cfx_xmlinstruction.cpp +++ b/core/fxcrt/xml/cfx_xmlinstruction.cpp @@ -14,17 +14,16 @@ #include "third_party/base/stl_util.h" CFX_XMLInstruction::CFX_XMLInstruction(const WideString& wsTarget) - : CFX_XMLAttributeNode(wsTarget) {} + : CFX_XMLNode(), name_(wsTarget) {} -CFX_XMLInstruction::~CFX_XMLInstruction() {} +CFX_XMLInstruction::~CFX_XMLInstruction() = default; FX_XMLNODETYPE CFX_XMLInstruction::GetType() const { return FX_XMLNODE_Instruction; } std::unique_ptr<CFX_XMLNode> CFX_XMLInstruction::Clone() { - auto pClone = pdfium::MakeUnique<CFX_XMLInstruction>(GetName()); - pClone->SetAttributes(GetAttributes()); + auto pClone = pdfium::MakeUnique<CFX_XMLInstruction>(name_); pClone->m_TargetData = m_TargetData; return std::move(pClone); } @@ -33,14 +32,17 @@ void CFX_XMLInstruction::AppendData(const WideString& wsData) { m_TargetData.push_back(wsData); } -void CFX_XMLInstruction::RemoveData(int32_t index) { - if (pdfium::IndexInBounds(m_TargetData, index)) - m_TargetData.erase(m_TargetData.begin() + index); +bool CFX_XMLInstruction::IsOriginalXFAVersion() const { + return name_ == L"originalXFAVersion"; +} + +bool CFX_XMLInstruction::IsAcrobat() const { + return name_ == L"acrobat"; } void CFX_XMLInstruction::Save( const RetainPtr<CFX_SeekableStreamProxy>& pXMLStream) { - if (GetName().CompareNoCase(L"xml") == 0) { + if (name_.CompareNoCase(L"xml") == 0) { WideString ws = L"<?xml version=\"1.0\" encoding=\""; uint16_t wCodePage = pXMLStream->GetCodePage(); if (wCodePage == FX_CODEPAGE_UTF16LE) @@ -56,17 +58,12 @@ void CFX_XMLInstruction::Save( } pXMLStream->WriteString( - WideString::Format(L"<?%ls", GetName().c_str()).AsStringView()); - for (auto it : GetAttributes()) { - pXMLStream->WriteString( - AttributeToString(it.first, it.second).AsStringView()); - } + WideString::Format(L"<?%ls", name_.c_str()).AsStringView()); for (const WideString& target : m_TargetData) { - WideString ws = L" \""; - ws += target; - ws += L"\""; - pXMLStream->WriteString(ws.AsStringView()); + pXMLStream->WriteString(L"\""); + pXMLStream->WriteString(target.AsStringView()); + pXMLStream->WriteString(L"\""); } pXMLStream->WriteString(WideStringView(L"?>")); |