summaryrefslogtreecommitdiff
path: root/include/xmloff
diff options
context:
space:
mode:
authorNoel <noelgrandin@gmail.com>2020-10-19 09:36:04 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-10-22 09:12:24 +0200
commit2b946d245eaf4bd40a0091aa5508315fc37c81a0 (patch)
tree920dfc7985126f30acff2852b079c5faf0d73dba /include/xmloff
parent37a8142720b82d7ce6db0c09593de5cab11c51fd (diff)
XmlFilterAdaptor: use the fastparser API when possible
part of the process of making SvXMLImport fastparser-only Which uncovered several bugs because I end up stacking fast and slow parsers, not once, but twice. Specifically, we have a problem here with default namespaces e.g. <math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> <semantics><mrow><mstyle mathsize="12pt"> where going from slow- to fast- parser loses this information, because there is no way to represent this in the fastparser world, so we end up with nastiness when we transition back to slow-parser, and then back-again to fast-parser. So I fixed a couple of places XMLEmbeddedObjectImportContext and in SvXMLLegacyToFastDocHandler, and then worked around some of it by introducing an new XImporter2 interface so I could strip out out one of the slowparser -> fastparser transitions. Change-Id: I491487b99271898da50dc999d3b9b9c39cbd97fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104514 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'include/xmloff')
-rw-r--r--include/xmloff/xmlimp.hxx1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/xmloff/xmlimp.hxx b/include/xmloff/xmlimp.hxx
index b73f565f5837..3e3a9cf89ad1 100644
--- a/include/xmloff/xmlimp.hxx
+++ b/include/xmloff/xmlimp.hxx
@@ -151,6 +151,7 @@ class XMLOFF_DLLPUBLIC SvXMLLegacyToFastDocHandler final : public ::cppu::WeakIm
private:
rtl::Reference< SvXMLImport > mrImport;
rtl::Reference< sax_fastparser::FastAttributeList > mxFastAttributes;
+ std::stack<sal_uInt16> maDefaultNamespaces;
public:
SvXMLLegacyToFastDocHandler( const rtl::Reference< SvXMLImport > & rImport );