diff options
author | dante <dante19031999@gmail.com> | 2020-12-19 18:39:54 +0100 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-12-26 08:21:58 +0100 |
commit | 9f6dfd50cb03b6511d4f711d284e1b75783d0b8b (patch) | |
tree | d40480227b9b07f574aa11ef26b53707f4bd6cb5 /sax | |
parent | 86707f3595c282f80b5e09558a23b539446daca2 (diff) |
Improve handle of custom XML entities
Since 7.1 hasn't been released yet there's still time to change it before having to be scared about backguards compatibility.
This way:
- It is more efficient than passing two arguments
- On definition it is simpler since both are declarated on same point.
So it is simpler to not loose sync between lists.
- Code is less long.
- Thanks to an idea proposed by Stephan Bergmann on other commit.
Change-Id: I16305a304c98eb8d4e11507c7938002da546778b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108028
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sax')
-rw-r--r-- | sax/source/fastparser/fastparser.cxx | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx index 85726599b41c..9d13d25ce385 100644 --- a/sax/source/fastparser/fastparser.cxx +++ b/sax/source/fastparser/fastparser.cxx @@ -250,7 +250,8 @@ public: /// @throws css::uno::RuntimeException void setNamespaceHandler( const css::uno::Reference< css::xml::sax::XFastNamespaceHandler >& Handler); // Fake DTD file - void setCustomEntityNames( const ::css::uno::Sequence< ::rtl::OUString >& names, const ::css::uno::Sequence< ::rtl::OUString >& replacements ); + void setCustomEntityNames( + const ::css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>& replacements); // called by the C callbacks of the expat parser void callbackStartElement( const xmlChar *localName , const xmlChar* prefix, const xmlChar* URI, @@ -952,16 +953,15 @@ void FastSaxParserImpl::setNamespaceHandler( const Reference< XFastNamespaceHand } void FastSaxParserImpl::setCustomEntityNames( - const ::css::uno::Sequence<::rtl::OUString>& names, - const ::css::uno::Sequence<::rtl::OUString>& replacements) + const ::css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>& replacements) { - m_Replacements.resize(names.size()); - for (size_t i = 0; i < names.size(); ++i) + m_Replacements.resize(replacements.size()); + for (size_t i = 0; i < replacements.size(); ++i) { - m_Replacements[i].name = names[i]; - m_Replacements[i].replacement = replacements[i]; + m_Replacements[i].name = replacements[i].First; + m_Replacements[i].replacement = replacements[i].Second; } - if (names.size() > 1) + if (m_Replacements.size() > 1) std::sort(m_Replacements.begin(), m_Replacements.end()); } @@ -1521,11 +1521,10 @@ OUString FastSaxParser::getImplementationName() return "com.sun.star.comp.extensions.xml.sax.FastParser"; } -void FastSaxParser::setCustomEntityNames(const ::css::uno::Sequence<::rtl::OUString>& names, - const ::css::uno::Sequence<::rtl::OUString>& replacements) +void FastSaxParser::setCustomEntityNames( + const ::css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>& replacements) { - assert(names.size() == replacements.size()); - mpImpl->setCustomEntityNames(names, replacements); + mpImpl->setCustomEntityNames(replacements); } sal_Bool FastSaxParser::supportsService( const OUString& ServiceName ) |