diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-05-15 21:20:30 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-05-17 18:45:56 +0200 |
commit | 429a960e157f3375e795cdec8f265ace1c5bdc9e (patch) | |
tree | f36bea7935a5e5fb9cd6e57765fed6d8c8690928 /sfx2 | |
parent | 4417c30d6aa8d415f1f63364bb5dedcd44ae5562 (diff) |
elide some OUString allocation
Change-Id: Iadd73477bf3b0edaa0fb7db10f9ffca88fe737e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134476
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/doc/SfxDocumentMetaData.cxx | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/sfx2/source/doc/SfxDocumentMetaData.cxx b/sfx2/source/doc/SfxDocumentMetaData.cxx index e8937c096471..6392bd4aa2cc 100644 --- a/sfx2/source/doc/SfxDocumentMetaData.cxx +++ b/sfx2/source/doc/SfxDocumentMetaData.cxx @@ -414,10 +414,11 @@ const char* s_stdMeta[] = { nullptr }; -const char* s_stdMetaList[] = { - "meta:keyword", // string* - "meta:user-defined", // ...* - nullptr +constexpr OUStringLiteral sMetaKeyword = u"meta:keyword"; +constexpr OUStringLiteral sMetaUserDefined = u"meta:user-defined"; +constexpr rtl::OUStringConstExpr s_stdMetaList[] { + sMetaKeyword, // string* + sMetaUserDefined, // ...* }; constexpr OUStringLiteral s_nsXLink = u"http://www.w3.org/1999/xlink"; @@ -1152,17 +1153,20 @@ void SfxDocumentMetaData::init( } } if (!xRElem.is()) { + static constexpr OUStringLiteral sOfficeDocumentMeta = u"office:document-meta"; xRElem = i_xDoc->createElementNS( - s_nsODF, "office:document-meta"); + s_nsODF, sOfficeDocumentMeta); css::uno::Reference<css::xml::dom::XNode> xRNode(xRElem, css::uno::UNO_QUERY_THROW); i_xDoc->appendChild(xRNode); } - xRElem->setAttributeNS(s_nsODF, "office:version", "1.0"); + static constexpr OUStringLiteral sOfficeVersion = u"office:version"; + xRElem->setAttributeNS(s_nsODF, sOfficeVersion, "1.0"); // does not exist, otherwise m_xParent would not be null + static constexpr OUStringLiteral sOfficeMeta = u"office:meta"; css::uno::Reference<css::xml::dom::XNode> xParent ( - i_xDoc->createElementNS(s_nsODF, "office:meta"), - css::uno::UNO_QUERY_THROW); + i_xDoc->createElementNS(s_nsODF, sOfficeMeta), + css::uno::UNO_QUERY_THROW); xRElem->appendChild(xParent); m_xParent = xParent; } catch (const css::xml::dom::DOMException &) { @@ -1191,23 +1195,25 @@ void SfxDocumentMetaData::init( } // select nodes for elements of which we handle all occurrences - for (const char **pName = s_stdMetaList; *pName != nullptr; ++pName) { - OUString name = OUString::createFromAscii(*pName); + for (const auto & name : s_stdMetaList) { std::vector<css::uno::Reference<css::xml::dom::XNode> > nodes = - getChildNodeListByName(m_xParent, name); + getChildNodeListByName(m_xParent, OUString(name)); m_metaList[name] = nodes; } // initialize members corresponding to attributes from DOM nodes - m_TemplateName = getMetaAttr("meta:template", "xlink:title"); - m_TemplateURL = getMetaAttr("meta:template", "xlink:href"); + static constexpr OUStringLiteral sMetaTemplate = u"meta:template"; + static constexpr OUStringLiteral sMetaAutoReload = u"meta:auto-reload"; + static constexpr OUStringLiteral sMetaHyperlinkBehaviour = u"meta:hyperlink-behaviour"; + m_TemplateName = getMetaAttr(sMetaTemplate, "xlink:title"); + m_TemplateURL = getMetaAttr(sMetaTemplate, "xlink:href"); m_TemplateDate = - textToDateTimeDefault(getMetaAttr("meta:template", "meta:date")); - m_AutoloadURL = getMetaAttr("meta:auto-reload", "xlink:href"); + textToDateTimeDefault(getMetaAttr(sMetaTemplate, "meta:date")); + m_AutoloadURL = getMetaAttr(sMetaAutoReload, "xlink:href"); m_AutoloadSecs = - textToDuration(getMetaAttr("meta:auto-reload", "meta:delay")); + textToDuration(getMetaAttr(sMetaAutoReload, "meta:delay")); m_DefaultTarget = - getMetaAttr("meta:hyperlink-behaviour", "office:target-frame-name"); + getMetaAttr(sMetaHyperlinkBehaviour, "office:target-frame-name"); std::vector<css::uno::Reference<css::xml::dom::XNode> > & vec = |