include/xmlreader/span.hxx | 4 ++-- include/xmlreader/xmlreader.hxx | 2 +- xmlreader/source/xmlreader.cxx | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-)
New commits: commit 266303e867fae0eb10fe9aa52cf683e3db88376a Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Mon Oct 7 10:38:28 2019 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Tue Oct 8 08:30:46 2019 +0200 cleanups in xmlreader (*) fix order of headers (*) include the right headers in span.hxx (*) use std::memcmp instead of memcmp (*) clear entries from cache when the namespaces array is resized Change-Id: I04319bbaa84369e5470799578fadcda66a591c9f Reviewed-on: https://gerrit.libreoffice.org/80347 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/include/xmlreader/span.hxx b/include/xmlreader/span.hxx index f56059b96274..a3da663e5a71 100644 --- a/include/xmlreader/span.hxx +++ b/include/xmlreader/span.hxx @@ -24,9 +24,9 @@ #include <cstddef> #include <cstring> +#include <functional> #include <sal/types.h> -#include <rtl/string.h> #include <xmlreader/detail/xmlreaderdllapi.hxx> namespace rtl { class OUString; } @@ -53,7 +53,7 @@ struct SAL_WARN_UNUSED OOO_DLLPUBLIC_XMLREADER Span { bool operator==(Span const & text) const { return length == text.length - && memcmp(begin, text.begin, text.length) == 0; + && std::memcmp(begin, text.begin, text.length) == 0; } bool operator!=(Span const & text) const { diff --git a/include/xmlreader/xmlreader.hxx b/include/xmlreader/xmlreader.hxx index a553baeb6c3a..99e889ee0d59 100644 --- a/include/xmlreader/xmlreader.hxx +++ b/include/xmlreader/xmlreader.hxx @@ -22,8 +22,8 @@ #include <sal/config.h> -#include <unordered_map> #include <stack> +#include <unordered_map> #include <vector> #include <osl/file.h> diff --git a/xmlreader/source/xmlreader.cxx b/xmlreader/source/xmlreader.cxx index 95a27a785b5c..918f42a2e1b2 100644 --- a/xmlreader/source/xmlreader.cxx +++ b/xmlreader/source/xmlreader.cxx @@ -714,7 +714,11 @@ XmlReader::Result XmlReader::handleEndTag() { void XmlReader::handleElementEnd() { assert(!elements_.empty()); - namespaces_.resize(elements_.top().inheritedNamespaces); + // remove keys from cache that are no longer valid + auto end = elements_.top().inheritedNamespaces; + for (auto i = end; i < namespaces_.size(); ++i) + cacheNSIds_.erase(namespaces_[i].prefix); + namespaces_.resize(end); elements_.pop(); state_ = elements_.empty() ? State::Done : State::Content; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits