summaryrefslogtreecommitdiff
path: root/sw/source/filter/xml
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2020-11-22 19:28:23 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-11-22 20:07:01 +0100
commit91d4a87a2c617fd4612e116e3d87b34558213e45 (patch)
treed58ca081e830eb85fa4da09a4984b3bb6c78fbb8 /sw/source/filter/xml
parent736b0709796d96325542b624ce27a7dc83419cfb (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>
Diffstat (limited to 'sw/source/filter/xml')
-rw-r--r--sw/source/filter/xml/xmlimp.cxx67
-rw-r--r--sw/source/filter/xml/xmlimp.hxx2
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();