writerperfect/Library_wpftwriter.mk | 1 + writerperfect/source/writer/exp/xmlimp.cxx | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 10 deletions(-)
New commits: commit a2327585289f36b4731ed20e70a406060f8fe23b Author: Arnaud VERSINI <[email protected]> AuthorDate: Mon Apr 21 15:37:45 2025 +0200 Commit: Arnaud Versini <[email protected]> CommitDate: Mon Jun 9 14:40:47 2025 +0200 writeperfect : use more frozen and OUString literal to avoid allocation Change-Id: I3caebb786e8c09ff9c79cda7fe9aabed2422e79e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184409 Tested-by: Jenkins Reviewed-by: Arnaud Versini <[email protected]> diff --git a/writerperfect/Library_wpftwriter.mk b/writerperfect/Library_wpftwriter.mk index 840a86f06e22..640af58f4c46 100644 --- a/writerperfect/Library_wpftwriter.mk +++ b/writerperfect/Library_wpftwriter.mk @@ -66,6 +66,7 @@ $(eval $(call gb_Library_use_externals,wpftwriter,\ boost_headers \ ebook \ $(if $(ENABLE_WASM_STRIP_SWEXPORTS),,etonyek) \ + frozen \ icu_headers \ icui18n \ icuuc \ diff --git a/writerperfect/source/writer/exp/xmlimp.cxx b/writerperfect/source/writer/exp/xmlimp.cxx index b219d742aaf2..473899fae40c 100644 --- a/writerperfect/source/writer/exp/xmlimp.cxx +++ b/writerperfect/source/writer/exp/xmlimp.cxx @@ -14,7 +14,9 @@ #include <string_view> #include <initializer_list> -#include <unordered_map> +#include <frozen/bits/defines.h> +#include <frozen/bits/elsa_std.h> +#include <frozen/unordered_map.h> #include <com/sun/star/svg/XSVGWriter.hpp> #include <com/sun/star/uri/UriReferenceFactory.hpp> @@ -41,13 +43,13 @@ namespace writerperfect::exp namespace { /// Looks up mime type for a given image extension. -OUString GetMimeType(const OUString& rExtension) +OUString GetMimeType(std::u16string_view rExtension) { - static const std::unordered_map<OUString, OUString> vMimeTypes = { - { "gif", "image/gif" }, - { "jpg", "image/jpeg" }, - { "png", "image/png" }, - { "svg", "image/svg+xml" }, + static constexpr frozen::unordered_map<std::u16string_view, OUString, 4> vMimeTypes = { + { u"gif", u"image/gif"_ustr }, + { u"jpg", u"image/jpeg"_ustr }, + { u"png", u"image/png"_ustr }, + { u"svg", u"image/svg+xml"_ustr }, }; auto it = vMimeTypes.find(rExtension); @@ -107,8 +109,7 @@ OUString FindCoverImage(const OUString& rDocumentBaseURL, OUString& rMimeType, if (rDocumentBaseURL.isEmpty()) return aRet; - static const std::initializer_list<std::u16string_view> vExtensions - = { u"gif", u"jpg", u"png", u"svg" }; + static constexpr std::u16string_view vExtensions[] = { u"gif", u"jpg", u"png", u"svg" }; OUString aMediaDir = FindMediaDir(rDocumentBaseURL, rFilterData); for (const auto& rExtension : vExtensions) @@ -119,7 +120,7 @@ OUString FindCoverImage(const OUString& rDocumentBaseURL, OUString& rMimeType, SvFileStream aStream(aRet, StreamMode::READ); if (aStream.IsOpen()) { - rMimeType = GetMimeType(OUString(rExtension)); + rMimeType = GetMimeType(rExtension); // File exists. return aRet; }
