diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2020-11-22 19:28:23 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-11-22 20:07:01 +0100 |
commit | 91d4a87a2c617fd4612e116e3d87b34558213e45 (patch) | |
tree | d58ca081e830eb85fa4da09a4984b3bb6c78fbb8 | |
parent | 736b0709796d96325542b624ce27a7dc83419cfb (diff) |
fastparser in SwXMLDocContext_Impl
Change-Id: I21fa16d473660e06b73a75964f3317b13e2e05e2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106359
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | sw/source/filter/xml/xmlimp.cxx | 67 | ||||
-rw-r--r-- | sw/source/filter/xml/xmlimp.hxx | 2 |
2 files changed, 5 insertions, 64 deletions
diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx index 0a7934c8b303..bb39dc917cc6 100644 --- a/sw/source/filter/xml/xmlimp.cxx +++ b/sw/source/filter/xml/xmlimp.cxx @@ -92,37 +92,6 @@ using namespace ::std; namespace { -enum SwXMLDocTokens -{ - XML_TOK_DOC_FONTDECLS, - XML_TOK_DOC_STYLES, - XML_TOK_DOC_AUTOSTYLES, - XML_TOK_DOC_MASTERSTYLES, - XML_TOK_DOC_META, - XML_TOK_DOC_BODY, - XML_TOK_DOC_SCRIPT, - XML_TOK_DOC_SETTINGS, - XML_TOK_DOC_XFORMS, -}; - -} - -const SvXMLTokenMapEntry aDocTokenMap[] = -{ - { XML_NAMESPACE_OFFICE, XML_FONT_FACE_DECLS, XML_TOK_DOC_FONTDECLS }, - { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES }, - { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES }, - { XML_NAMESPACE_OFFICE, XML_MASTER_STYLES, XML_TOK_DOC_MASTERSTYLES }, - { XML_NAMESPACE_OFFICE, XML_META, XML_TOK_DOC_META }, - { XML_NAMESPACE_OFFICE, XML_BODY, XML_TOK_DOC_BODY }, - { XML_NAMESPACE_OFFICE, XML_SCRIPTS, XML_TOK_DOC_SCRIPT }, - { XML_NAMESPACE_OFFICE, XML_SETTINGS, XML_TOK_DOC_SETTINGS }, - { XML_NAMESPACE_XFORMS, XML_MODEL, XML_TOK_DOC_XFORMS }, - XML_TOKEN_MAP_END -}; - -namespace { - class SwXMLBodyContext_Impl : public SvXMLImportContext { SwXMLImport& GetSwImport() { return static_cast<SwXMLImport&>(GetImport()); } @@ -188,10 +157,6 @@ protected: // #i69629# public: SwXMLDocContext_Impl( SwXMLImport& rImport ); - virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, - const OUString& rLocalName, - const Reference< xml::sax::XAttributeList > & xAttrList ) override; - virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override; }; @@ -238,28 +203,15 @@ uno::Reference< xml::sax::XFastContextHandler > SAL_CALL SwXMLDocContext_Impl::c GetSwImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP ); return new SwXMLBodyContext_Impl( GetSwImport() ); break; + case XML_ELEMENT(XFORMS, XML_MODEL): + return createXFormsModelContext(GetImport()); + break; + default: + XMLOFF_WARN_UNKNOWN_ELEMENT("sw", nElement); } return nullptr; } -SvXMLImportContextRef SwXMLDocContext_Impl::CreateChildContext( - sal_uInt16 nPrefix, - const OUString& rLocalName, - const Reference< xml::sax::XAttributeList > & /*xAttrList*/ ) -{ - SvXMLImportContext *pContext = nullptr; - - const SvXMLTokenMap& rTokenMap = GetSwImport().GetDocElemTokenMap(); - switch( rTokenMap.Get( nPrefix, rLocalName ) ) - { - case XML_TOK_DOC_XFORMS: - pContext = createXFormsModelContext(GetImport()); - break; - } - - return pContext; -} - namespace { // #i69629# - new subclass <SwXMLOfficeDocContext_Impl> of class <SwXMLDocContext_Impl> @@ -338,14 +290,6 @@ void SwXMLDocStylesContext_Impl::endFastElement(sal_Int32 ) bool(rSwImport.GetStyleFamilyMask() & SfxStyleFamily::Para)); } -const SvXMLTokenMap& SwXMLImport::GetDocElemTokenMap() -{ - if( !m_pDocElemTokenMap ) - m_pDocElemTokenMap.reset( new SvXMLTokenMap( aDocTokenMap ) ); - - return *m_pDocElemTokenMap; -} - SvXMLImportContext *SwXMLImport::CreateFastContext( sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) { @@ -398,7 +342,6 @@ SwXMLImport::~SwXMLImport() throw () SAL_WARN("sw", "endDocument skipped, dropping shapes now to avoid dangling SvTextShapeImportHelper pointing to this"); ClearShapeImport(); } - m_pDocElemTokenMap.reset(); m_pTableElemTokenMap.reset(); m_pTableCellAttrTokenMap.reset(); FinitItemImport(); diff --git a/sw/source/filter/xml/xmlimp.hxx b/sw/source/filter/xml/xmlimp.hxx index 3be18e1b5bfd..63313c2c155e 100644 --- a/sw/source/filter/xml/xmlimp.hxx +++ b/sw/source/filter/xml/xmlimp.hxx @@ -63,7 +63,6 @@ class SwXMLImport: public SvXMLImport std::unique_ptr<SvXMLUnitConverter> m_pTwipUnitConv; std::unique_ptr<SvXMLImportItemMapper> m_pTableItemMapper;// paragraph item import - std::unique_ptr<SvXMLTokenMap> m_pDocElemTokenMap; std::unique_ptr<SvXMLTokenMap> m_pTableElemTokenMap; std::unique_ptr<SvXMLTokenMap> m_pTableCellAttrTokenMap; @@ -150,7 +149,6 @@ public: const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList, XmlStyleFamily nSubFamily, SfxItemSet& rItemSet ); - const SvXMLTokenMap& GetDocElemTokenMap(); const SvXMLTokenMap& GetTableElemTokenMap(); const SvXMLTokenMap& GetTableCellAttrTokenMap(); |