diff options
author | Noel <noelgrandin@gmail.com> | 2020-11-24 11:03:25 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-11-24 17:47:50 +0100 |
commit | f981f756e1509ac0a39cd618316cfe3befd5923a (patch) | |
tree | 5eb9a22b4269a31547e117b709bccd744b4af11d /xmloff/inc | |
parent | d84deb9536373ddc9efcf513e9d88035215bd735 (diff) |
fix crash in loading ooo57731-1.odt
This fixes bugs in the following commits, where
we need to also process unknown elements, in order to
maintain compatibility with the preceding code.
commit 0c48c46d3ed5db39a0c0e6d0b35aab7506fb8772
Date: Thu Nov 19 13:16:17 2020 +0200
fastparser in DomBuilderContext
commit bb124fe673d69f8a79478bf25329978a452b82da
Author: Noel <noelgrandin@gmail.com>
Date: Thu Nov 19 11:52:50 2020 +0200
fastparser in DomBuilderContext
commit cf13e985a6112a18e4d405b807a2064092c01b2d
Date: Thu Nov 19 14:17:54 2020 +0200
fastparser in TokenContext
commit 39d8ee8f91f4c571030b53febdcba07ea55ca7de
Date: Thu Nov 19 13:51:21 2020 +0200
fastparser in TokenContext
Change-Id: I9e4eddfedc6d13db72066f0d5bf436fc237bf3e5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106490
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'xmloff/inc')
-rw-r--r-- | xmloff/inc/DomBuilderContext.hxx | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/xmloff/inc/DomBuilderContext.hxx b/xmloff/inc/DomBuilderContext.hxx index 4c216084d112..c8498a094317 100644 --- a/xmloff/inc/DomBuilderContext.hxx +++ b/xmloff/inc/DomBuilderContext.hxx @@ -45,16 +45,24 @@ class DomBuilderContext final : public SvXMLImportContext { css::uno::Reference<css::xml::dom::XNode> mxNode; + void HandleAttributes(const css::uno::Reference< css::xml::sax::XFastAttributeList >& Attribs); + public: /** default constructor: create new DOM tree */ DomBuilderContext( SvXMLImport& rImport, sal_Int32 nElement ); + DomBuilderContext( SvXMLImport& rImport, + const OUString & Namespace, const OUString & Name ); /** constructor: create DOM subtree under the given node */ DomBuilderContext( SvXMLImport& rImport, sal_Int32 nElement, css::uno::Reference<css::xml::dom::XNode> const & ); + /** constructor: create DOM subtree under the given node */ + DomBuilderContext( SvXMLImport& rImport, + const OUString & Namespace, const OUString & Name, + css::uno::Reference<css::xml::dom::XNode> const & ); virtual ~DomBuilderContext() override; @@ -70,10 +78,15 @@ public: virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override; + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createUnknownChildContext( + const OUString& Namespace, const OUString& Name, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& Attribs ) override; virtual void SAL_CALL startFastElement( sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; + virtual void SAL_CALL startUnknownElement(const OUString & Namespace, const OUString & Name, + const css::uno::Reference< css::xml::sax::XFastAttributeList > & Attribs) override; virtual void SAL_CALL characters( const OUString& rChars ) override; }; |