summaryrefslogtreecommitdiff
path: root/core/fxcrt/xml/cfx_xmlelement.cpp
diff options
context:
space:
mode:
authordan sinclair <dsinclair@chromium.org>2018-04-17 18:12:38 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-04-17 18:12:38 +0000
commitbc069b7a855998ab28f487d2f09152851dddb16a (patch)
treeb50e3713a80177034a3fc7a2c12920c15aeb7056 /core/fxcrt/xml/cfx_xmlelement.cpp
parent8b4a3c7ef32b2ffb4874e4cc65b38ee555d8806e (diff)
downloadpdfium-bc069b7a855998ab28f487d2f09152851dddb16a.tar.xz
Use an IFX_SeekableStream for XML saving
This CL converts the CFX_XML Save methods to take an IFX_SeekableStream instead of a CFX_SeekableStreamProxy. Change-Id: I6b3f6acc9f51e73b3c863b965b4dcdcbd25ba949 Reviewed-on: https://pdfium-review.googlesource.com/30850 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fxcrt/xml/cfx_xmlelement.cpp')
-rw-r--r--core/fxcrt/xml/cfx_xmlelement.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/core/fxcrt/xml/cfx_xmlelement.cpp b/core/fxcrt/xml/cfx_xmlelement.cpp
index 42588c6393..c54d8488a3 100644
--- a/core/fxcrt/xml/cfx_xmlelement.cpp
+++ b/core/fxcrt/xml/cfx_xmlelement.cpp
@@ -93,30 +93,31 @@ void CFX_XMLElement::SetTextData(const WideString& wsText) {
AppendChild(new CFX_XMLText(wsText));
}
-void CFX_XMLElement::Save(
- const RetainPtr<CFX_SeekableStreamProxy>& pXMLStream) {
- pXMLStream->WriteString(L"<");
- pXMLStream->WriteString(name_.AsStringView());
+void CFX_XMLElement::Save(const RetainPtr<IFX_SeekableStream>& pXMLStream) {
+ ByteStringView name_encoded = name_.UTF8Encode().AsStringView();
+
+ pXMLStream->WriteString("<");
+ pXMLStream->WriteString(name_encoded);
for (auto it : attrs_) {
pXMLStream->WriteString(
- AttributeToString(it.first, it.second).AsStringView());
+ AttributeToString(it.first, it.second).UTF8Encode().AsStringView());
}
if (!GetFirstChild()) {
- pXMLStream->WriteString(L" />");
+ pXMLStream->WriteString(" />\n");
return;
}
- pXMLStream->WriteString(L">");
+ pXMLStream->WriteString(">\n");
for (CFX_XMLNode* pChild = GetFirstChild(); pChild;
pChild = pChild->GetNextSibling()) {
pChild->Save(pXMLStream);
}
- pXMLStream->WriteString(L"</");
- pXMLStream->WriteString(name_.AsStringView());
- pXMLStream->WriteString(L"\n>");
+ pXMLStream->WriteString("</");
+ pXMLStream->WriteString(name_encoded);
+ pXMLStream->WriteString(">\n");
}
CFX_XMLElement* CFX_XMLElement::GetFirstChildNamed(