[Libreoffice-commits] core.git: compilerplugins/clang include/xmloff sc/source sw/source xmloff/inc xmloff/source

Noel (via logerrit) logerrit at kemper.freedesktop.org
Mon Nov 2 16:09:30 UTC 2020


 compilerplugins/clang/xmlimport.cxx                      |    4 +
 include/xmloff/xmlictxt.hxx                              |    8 --
 sc/source/filter/xml/XMLTrackedChangesContext.cxx        |    4 -
 sc/source/filter/xml/xmlannoi.cxx                        |    4 -
 sc/source/filter/xml/xmlannoi.hxx                        |    2 
 sw/source/filter/xml/xmltbli.cxx                         |   10 +--
 sw/source/filter/xml/xmltbli.hxx                         |    2 
 xmloff/inc/XMLEmbeddedObjectImportContext.hxx            |    2 
 xmloff/inc/XMLImageMapContext.hxx                        |    2 
 xmloff/inc/XMLReplacementImageContext.hxx                |    2 
 xmloff/inc/txtfldi.hxx                                   |    6 -
 xmloff/inc/txtvfldi.hxx                                  |    6 -
 xmloff/source/chart/SchXMLAxisContext.cxx                |    2 
 xmloff/source/chart/SchXMLAxisContext.hxx                |    2 
 xmloff/source/chart/SchXMLCalculationSettingsContext.cxx |    2 
 xmloff/source/chart/SchXMLCalculationSettingsContext.hxx |    2 
 xmloff/source/chart/SchXMLChartContext.cxx               |    2 
 xmloff/source/chart/SchXMLChartContext.hxx               |    2 
 xmloff/source/chart/SchXMLPlotAreaContext.cxx            |    6 -
 xmloff/source/chart/SchXMLPlotAreaContext.hxx            |    6 -
 xmloff/source/chart/SchXMLSeries2Context.cxx             |    2 
 xmloff/source/chart/SchXMLSeries2Context.hxx             |    2 
 xmloff/source/chart/SchXMLTableContext.cxx               |    8 +-
 xmloff/source/chart/SchXMLTableContext.hxx               |    4 -
 xmloff/source/chart/SchXMLTextListContext.cxx            |    2 
 xmloff/source/chart/SchXMLTextListContext.hxx            |    2 
 xmloff/source/core/XMLEmbeddedObjectImportContext.cxx    |    6 -
 xmloff/source/core/xmlictxt.cxx                          |    8 --
 xmloff/source/draw/XMLImageMapContext.cxx                |    6 -
 xmloff/source/draw/XMLReplacementImageContext.cxx        |    2 
 xmloff/source/draw/descriptionimp.cxx                    |    2 
 xmloff/source/draw/descriptionimp.hxx                    |    2 
 xmloff/source/draw/eventimp.cxx                          |    4 -
 xmloff/source/draw/layerimp.cxx                          |    4 -
 xmloff/source/draw/ximp3dscene.cxx                       |    4 -
 xmloff/source/draw/ximp3dscene.hxx                       |    2 
 xmloff/source/draw/ximpcustomshape.cxx                   |    2 
 xmloff/source/draw/ximpcustomshape.hxx                   |    2 
 xmloff/source/draw/ximpgrp.cxx                           |    4 -
 xmloff/source/draw/ximpgrp.hxx                           |    2 
 xmloff/source/draw/ximpshap.cxx                          |   49 +++++++--------
 xmloff/source/draw/ximpshap.hxx                          |   22 +++---
 xmloff/source/forms/elementimport.cxx                    |   22 +++---
 xmloff/source/forms/elementimport.hxx                    |   12 +--
 xmloff/source/forms/eventimport.cxx                      |    2 
 xmloff/source/forms/eventimport.hxx                      |    2 
 xmloff/source/forms/officeforms.cxx                      |    2 
 xmloff/source/forms/officeforms.hxx                      |    2 
 xmloff/source/forms/propertyimport.cxx                   |    2 
 xmloff/source/forms/propertyimport.hxx                   |    2 
 xmloff/source/table/XMLTableImport.cxx                   |    8 +-
 xmloff/source/text/XMLCalculationSettingsContext.cxx     |    2 
 xmloff/source/text/XMLCalculationSettingsContext.hxx     |    2 
 xmloff/source/text/XMLChangeElementImportContext.cxx     |    2 
 xmloff/source/text/XMLChangeElementImportContext.hxx     |    2 
 xmloff/source/text/XMLChangeInfoContext.cxx              |    2 
 xmloff/source/text/XMLChangeInfoContext.hxx              |    2 
 xmloff/source/text/XMLChangedRegionImportContext.cxx     |    2 
 xmloff/source/text/XMLChangedRegionImportContext.hxx     |    2 
 xmloff/source/text/XMLFootnoteImportContext.cxx          |    2 
 xmloff/source/text/XMLFootnoteImportContext.hxx          |    2 
 xmloff/source/text/XMLIndexAlphabeticalSourceContext.cxx |    4 -
 xmloff/source/text/XMLIndexAlphabeticalSourceContext.hxx |    2 
 xmloff/source/text/XMLIndexBibliographyEntryContext.cxx  |    4 -
 xmloff/source/text/XMLIndexBibliographyEntryContext.hxx  |    2 
 xmloff/source/text/XMLIndexBibliographySourceContext.cxx |    4 -
 xmloff/source/text/XMLIndexBibliographySourceContext.hxx |    2 
 xmloff/source/text/XMLIndexObjectSourceContext.cxx       |    4 -
 xmloff/source/text/XMLIndexObjectSourceContext.hxx       |    2 
 xmloff/source/text/XMLIndexSimpleEntryContext.cxx        |    2 
 xmloff/source/text/XMLIndexSimpleEntryContext.hxx        |    2 
 xmloff/source/text/XMLIndexSourceBaseContext.cxx         |    2 
 xmloff/source/text/XMLIndexSourceBaseContext.hxx         |    2 
 xmloff/source/text/XMLIndexTOCContext.cxx                |    2 
 xmloff/source/text/XMLIndexTOCContext.hxx                |    2 
 xmloff/source/text/XMLIndexTOCSourceContext.cxx          |    4 -
 xmloff/source/text/XMLIndexTOCSourceContext.hxx          |    2 
 xmloff/source/text/XMLIndexTOCStylesContext.cxx          |    2 
 xmloff/source/text/XMLIndexTOCStylesContext.hxx          |    2 
 xmloff/source/text/XMLIndexTableSourceContext.cxx        |    4 -
 xmloff/source/text/XMLIndexTableSourceContext.hxx        |    2 
 xmloff/source/text/XMLIndexTemplateContext.cxx           |    2 
 xmloff/source/text/XMLIndexTemplateContext.hxx           |    2 
 xmloff/source/text/XMLIndexTitleTemplateContext.cxx      |    2 
 xmloff/source/text/XMLIndexTitleTemplateContext.hxx      |    2 
 xmloff/source/text/XMLIndexUserSourceContext.cxx         |    4 -
 xmloff/source/text/XMLIndexUserSourceContext.hxx         |    2 
 xmloff/source/text/XMLSectionImportContext.cxx           |    2 
 xmloff/source/text/XMLSectionImportContext.hxx           |    2 
 xmloff/source/text/XMLTextFrameContext.cxx               |    6 -
 xmloff/source/text/XMLTextFrameContext.hxx               |    2 
 xmloff/source/text/XMLTextListBlockContext.cxx           |    2 
 xmloff/source/text/XMLTextListBlockContext.hxx           |    2 
 xmloff/source/text/XMLTextListItemContext.cxx            |    2 
 xmloff/source/text/XMLTextListItemContext.hxx            |    2 
 xmloff/source/text/XMLTextMarkImportContext.cxx          |    2 
 xmloff/source/text/XMLTextMarkImportContext.hxx          |    2 
 xmloff/source/text/txtfldi.cxx                           |    6 -
 xmloff/source/text/txtparai.cxx                          |   12 +--
 xmloff/source/text/txtparai.hxx                          |    4 -
 xmloff/source/text/txtvfldi.cxx                          |    4 -
 xmloff/source/xforms/XFormsInstanceContext.cxx           |    2 
 xmloff/source/xforms/XFormsInstanceContext.hxx           |    2 
 xmloff/source/xforms/XFormsModelContext.cxx              |    2 
 xmloff/source/xforms/XFormsModelContext.hxx              |    2 
 105 files changed, 205 insertions(+), 210 deletions(-)

New commits:
commit 3940cf7d716f3e469f47d3c831a799e58edf2eb8
Author:     Noel <noelgrandin at gmail.com>
AuthorDate: Mon Nov 2 12:26:26 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Mon Nov 2 17:08:47 2020 +0100

    drop the SvXMLExport::EndElement method..
    
    in favour of just using the endFastElement() method
    
    Change-Id: Id95abb0b9e78bc44278c5e9e3cc8dee15185e2e2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105175
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/compilerplugins/clang/xmlimport.cxx b/compilerplugins/clang/xmlimport.cxx
index 72645564a5d1..c82a8d960228 100644
--- a/compilerplugins/clang/xmlimport.cxx
+++ b/compilerplugins/clang/xmlimport.cxx
@@ -54,6 +54,10 @@ public:
             return false;
         if (loplugin::isSamePathname(fn, SRCDIR "/sc/source/filter/xml/xmlannoi.cxx"))
             return false;
+        // this class specifically wants to prevent some endFastElement processing happening in it's superclass
+        if (loplugin::isSamePathname(fn, SRCDIR
+                                     "/xmloff/source/text/XMLIndexBibliographySourceContext.cxx"))
+            return false;
         return true;
     }
 
diff --git a/include/xmloff/xmlictxt.hxx b/include/xmloff/xmlictxt.hxx
index 111009506ca1..7753a00f3c68 100644
--- a/include/xmloff/xmlictxt.hxx
+++ b/include/xmloff/xmlictxt.hxx
@@ -94,11 +94,6 @@ public:
      * require virtual methods. The default is to do nothing. */
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList );
 
-    /** EndElement is called before a context will be destructed, but
-     * after an elements context has been parsed. It may be used for actions
-     * that require virtual methods. The default is to do nothing. */
-    virtual void EndElement();
-
     // css::xml::sax::XFastContextHandler:
     virtual void SAL_CALL startFastElement (sal_Int32 Element,
         const css::uno::Reference< css::xml::sax::XFastAttributeList >& Attribs) override;
@@ -106,6 +101,9 @@ public:
     virtual void SAL_CALL startUnknownElement(const OUString & Namespace, const OUString & Name,
         const css::uno::Reference< css::xml::sax::XFastAttributeList > & Attribs) override;
 
+    /** endFastElement is called before a context will be destructed, but
+     * after an elements context has been parsed. It may be used for actions
+     * that require virtual methods. The default is to do nothing. */
     virtual void SAL_CALL endFastElement(sal_Int32 Element) override;
 
     virtual void SAL_CALL endUnknownElement(const OUString & Namespace, const OUString & Name) override;
diff --git a/sc/source/filter/xml/XMLTrackedChangesContext.cxx b/sc/source/filter/xml/XMLTrackedChangesContext.cxx
index 1861436d178d..7a6f7a0a7e56 100644
--- a/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+++ b/sc/source/filter/xml/XMLTrackedChangesContext.cxx
@@ -163,7 +163,7 @@ public:
 
     virtual void SAL_CALL characters( const OUString& rChars ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 class ScXMLChangeCellContext : public ScXMLImportContext
@@ -719,7 +719,7 @@ void ScXMLChangeTextPContext::characters( const OUString& rChars )
         pTextPContext->characters(rChars);
 }
 
-void ScXMLChangeTextPContext::EndElement()
+void ScXMLChangeTextPContext::endFastElement(sal_Int32 )
 {
     if (!pTextPContext)
         pChangeCellContext->SetText(sText.makeStringAndClear());
diff --git a/sc/source/filter/xml/xmlannoi.cxx b/sc/source/filter/xml/xmlannoi.cxx
index cc60de9d7ab7..3a0ba33e2322 100644
--- a/sc/source/filter/xml/xmlannoi.cxx
+++ b/sc/source/filter/xml/xmlannoi.cxx
@@ -146,11 +146,11 @@ void ScXMLAnnotationContext::characters( const OUString& rChars )
     maTextBuffer.append(rChars);
 }
 
-void ScXMLAnnotationContext::EndElement()
+void ScXMLAnnotationContext::endFastElement(sal_Int32 nElement)
 {
     if (pShapeContext)
     {
-        pShapeContext->EndElement();
+        pShapeContext->endFastElement(nElement);
         pShapeContext.reset();
     }
 
diff --git a/sc/source/filter/xml/xmlannoi.hxx b/sc/source/filter/xml/xmlannoi.hxx
index 24164155f44b..d9bf57382710 100644
--- a/sc/source/filter/xml/xmlannoi.hxx
+++ b/sc/source/filter/xml/xmlannoi.hxx
@@ -83,7 +83,7 @@ public:
 
     virtual void SAL_CALL characters( const OUString& rChars ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     void SetShape(
         const css::uno::Reference< css::drawing::XShape >& rxShape,
diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
index 3c10b729e89b..26a2602ee1d8 100644
--- a/sw/source/filter/xml/xmltbli.cxx
+++ b/sw/source/filter/xml/xmltbli.cxx
@@ -420,7 +420,7 @@ public:
     virtual SvXMLImportContextRef CreateChildContext(
             sal_uInt16 nPrefix, const OUString& rLocalName,
             const Reference< xml::sax::XAttributeList > & xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     SwXMLImport& GetSwImport() { return static_cast<SwXMLImport&>(GetImport()); }
 };
@@ -652,7 +652,7 @@ SvXMLImportContextRef SwXMLTableCellContext_Impl::CreateChildContext(
     return pContext;
 }
 
-void SwXMLTableCellContext_Impl::EndElement()
+void SwXMLTableCellContext_Impl::endFastElement(sal_Int32 )
 {
     if( GetTable()->IsValid() )
     {
@@ -869,7 +869,7 @@ public:
             const OUString& rLocalName,
             const Reference< xml::sax::XAttributeList > & xAttrList ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     SwXMLImport& GetSwImport() { return static_cast<SwXMLImport&>(GetImport()); }
 };
@@ -929,7 +929,7 @@ SwXMLTableRowContext_Impl::SwXMLTableRowContext_Impl( SwXMLImport& rImport,
         GetTable()->InsertRow( aStyleName, aDfltCellStyleName, bInHead );
 }
 
-void SwXMLTableRowContext_Impl::EndElement()
+void SwXMLTableRowContext_Impl::endFastElement(sal_Int32 )
 {
     if( GetTable()->IsValid() )
     {
@@ -2863,7 +2863,7 @@ const SwStartNode *SwXMLTableContext::InsertTableSection(
     return pStNd;
 }
 
-void SwXMLTableContext::EndElement()
+void SwXMLTableContext::endFastElement(sal_Int32 )
 {
     if( IsValid() && !m_xParentTable.is() )
     {
diff --git a/sw/source/filter/xml/xmltbli.hxx b/sw/source/filter/xml/xmltbli.hxx
index 445cd4b0534a..9dfaf06f1d74 100644
--- a/sw/source/filter/xml/xmltbli.hxx
+++ b/sw/source/filter/xml/xmltbli.hxx
@@ -181,7 +181,7 @@ public:
     const SwStartNode *InsertTableSection(const SwStartNode *pPrevSttNd = nullptr,
                                   OUString const* pStringValueStyleName = nullptr);
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     void SetHasSubTables( bool bNew ) { m_bHasSubTables = bNew; }
 };
diff --git a/xmloff/inc/XMLEmbeddedObjectImportContext.hxx b/xmloff/inc/XMLEmbeddedObjectImportContext.hxx
index 042605f4bf8f..22f30adad79b 100644
--- a/xmloff/inc/XMLEmbeddedObjectImportContext.hxx
+++ b/xmloff/inc/XMLEmbeddedObjectImportContext.hxx
@@ -50,7 +50,7 @@ public:
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual void SAL_CALL characters( const OUString& rChars ) override;
 
diff --git a/xmloff/inc/XMLImageMapContext.hxx b/xmloff/inc/XMLImageMapContext.hxx
index 8421e0da5fc4..90b014000e4c 100644
--- a/xmloff/inc/XMLImageMapContext.hxx
+++ b/xmloff/inc/XMLImageMapContext.hxx
@@ -55,7 +55,7 @@ public:
         const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 #endif
diff --git a/xmloff/inc/XMLReplacementImageContext.hxx b/xmloff/inc/XMLReplacementImageContext.hxx
index 83bc128ba199..357c2c38f821 100644
--- a/xmloff/inc/XMLReplacementImageContext.hxx
+++ b/xmloff/inc/XMLReplacementImageContext.hxx
@@ -45,7 +45,7 @@ public:
             const css::uno::Reference< css::beans::XPropertySet >& rPropSet );
     virtual ~XMLReplacementImageContext() override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
                 const OUString& rLocalName,
diff --git a/xmloff/inc/txtfldi.hxx b/xmloff/inc/txtfldi.hxx
index ecdace2b1578..34d1a863d4c0 100644
--- a/xmloff/inc/txtfldi.hxx
+++ b/xmloff/inc/txtfldi.hxx
@@ -138,7 +138,7 @@ public:
         const css::uno::Reference< css::xml::sax::XAttributeList> & xAttrList) override;
 
     /// create XTextField and insert into document; calls PrepareTextField
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     /// create the appropriate field context from
     /// (for use in paragraph import)
@@ -993,7 +993,7 @@ private:
                                    const OUString& sAttrValue ) override;
 
     /// create textfield, attach master, and insert into document
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     /// empty method
     virtual void PrepareField(
@@ -1130,7 +1130,7 @@ private:
         sal_uInt16 nPrefix,
         const OUString& rLocalName,
         const css::uno::Reference<css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 /** Import a script field (<text:script>) */
diff --git a/xmloff/inc/txtvfldi.hxx b/xmloff/inc/txtvfldi.hxx
index d399ff2beea9..2ad378a9e670 100644
--- a/xmloff/inc/txtvfldi.hxx
+++ b/xmloff/inc/txtvfldi.hxx
@@ -243,7 +243,7 @@ public:
         const char* pServiceName,   /// see XMLTextFieldImportContext
         sal_uInt16 nPrfx,               /// see XMLTextFieldImportContext
         const OUString& rLocalName, /// see XMLTextFieldImportContext
-        // for finding appropriate field master (see EndElement())
+        // for finding appropriate field master (see endFastElement())
         VarType eVarType,               /// variable type
         // config variables:
         bool bFormula,              /// see XMLTextFieldImportContext
@@ -262,7 +262,7 @@ protected:
 
     /// create XTextField, attach master and insert into document;
     /// also calls PrepareTextField
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     /// find appropriate field master
     bool FindFieldMaster(
@@ -476,7 +476,7 @@ private:
                                    const OUString& sAttrValue ) override;
 
     /// create, prepare and insert database field master and database field
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 #endif
diff --git a/xmloff/source/chart/SchXMLAxisContext.cxx b/xmloff/source/chart/SchXMLAxisContext.cxx
index ebd512a6bca7..511c2c776546 100644
--- a/xmloff/source/chart/SchXMLAxisContext.cxx
+++ b/xmloff/source/chart/SchXMLAxisContext.cxx
@@ -713,7 +713,7 @@ SvXMLImportContextRef SchXMLAxisContext::CreateChildContext(
     return pContext;
 }
 
-void SchXMLAxisContext::EndElement()
+void SchXMLAxisContext::endFastElement(sal_Int32 )
 {
     if( !m_bDateScaleImported && m_nAxisType==chart::ChartAxisType::AUTOMATIC )
     {
diff --git a/xmloff/source/chart/SchXMLAxisContext.hxx b/xmloff/source/chart/SchXMLAxisContext.hxx
index 622c6282aeb0..ae7d7d54049d 100644
--- a/xmloff/source/chart/SchXMLAxisContext.hxx
+++ b/xmloff/source/chart/SchXMLAxisContext.hxx
@@ -42,7 +42,7 @@ public:
     virtual ~SchXMLAxisContext() override;
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
         const OUString& rLocalName,
diff --git a/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx b/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
index f22819ad8363..63896ea0a576 100644
--- a/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
+++ b/xmloff/source/chart/SchXMLCalculationSettingsContext.cxx
@@ -64,7 +64,7 @@ SvXMLImportContextRef SchXMLCalculationSettingsContext::CreateChildContext( sal_
     return new SchXMLCalculationSettingsContext(GetImport(),nPrefix,rLocalName,xAttrList);
 }
 
-void SchXMLCalculationSettingsContext::EndElement()
+void SchXMLCalculationSettingsContext::endFastElement(sal_Int32 )
 {
     if ( m_aNullDate.hasValue() )
     {
diff --git a/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx b/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx
index 0fbe3056a162..a50f0d275314 100644
--- a/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx
+++ b/xmloff/source/chart/SchXMLCalculationSettingsContext.hxx
@@ -35,7 +35,7 @@ public:
                                    const OUString& rLocalName,
                                    const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 
diff --git a/xmloff/source/chart/SchXMLChartContext.cxx b/xmloff/source/chart/SchXMLChartContext.cxx
index 3a9cd84ff125..2a78204499ad 100644
--- a/xmloff/source/chart/SchXMLChartContext.cxx
+++ b/xmloff/source/chart/SchXMLChartContext.cxx
@@ -709,7 +709,7 @@ static void lcl_ApplyDataFromRectangularRangeToDiagram(
     xNewDia->setDiagramData( xDataSource, aArgs );
 }
 
-void SchXMLChartContext::EndElement()
+void SchXMLChartContext::endFastElement(sal_Int32 )
 {
     uno::Reference< chart::XChartDocument > xDoc = mrImportHelper.GetChartDocument();
     uno::Reference< beans::XPropertySet > xProp( xDoc, uno::UNO_QUERY );
diff --git a/xmloff/source/chart/SchXMLChartContext.hxx b/xmloff/source/chart/SchXMLChartContext.hxx
index ae99d92fa2f6..830966fb2e95 100644
--- a/xmloff/source/chart/SchXMLChartContext.hxx
+++ b/xmloff/source/chart/SchXMLChartContext.hxx
@@ -80,7 +80,7 @@ public:
     virtual ~SchXMLChartContext() override;
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
         const OUString& rLocalName,
diff --git a/xmloff/source/chart/SchXMLPlotAreaContext.cxx b/xmloff/source/chart/SchXMLPlotAreaContext.cxx
index 47e3ba67e2cf..7dd72350dacf 100644
--- a/xmloff/source/chart/SchXMLPlotAreaContext.cxx
+++ b/xmloff/source/chart/SchXMLPlotAreaContext.cxx
@@ -498,7 +498,7 @@ SvXMLImportContextRef SchXMLPlotAreaContext::CreateChildContext(
     return pContext;
 }
 
-void SchXMLPlotAreaContext::EndElement()
+void SchXMLPlotAreaContext::endFastElement(sal_Int32 )
 {
     // set categories
     if( !mrCategoriesAddress.isEmpty() && mxNewDoc.is())
@@ -594,7 +594,7 @@ void SchXMLDataLabelSpanContext::characters(const OUString& rChars)
     maCharBuffer.append(rChars);
 }
 
-void SchXMLDataLabelSpanContext::EndElement()
+void SchXMLDataLabelSpanContext::endFastElement(sal_Int32 )
 {
     mrLabels.push_back(maCharBuffer.makeStringAndClear());
 }
@@ -781,7 +781,7 @@ void SchXMLDataPointContext::StartElement( const uno::Reference< xml::sax::XAttr
     mrIndex += nRepeat;
 }
 
-void SchXMLDataPointContext::EndElement()
+void SchXMLDataPointContext::endFastElement(sal_Int32 )
 {
     if(!mDataPoint.msStyleName.isEmpty() || mDataPoint.mCustomLabels.size() > 0)
     {
diff --git a/xmloff/source/chart/SchXMLPlotAreaContext.hxx b/xmloff/source/chart/SchXMLPlotAreaContext.hxx
index 7ab9c82a9bdd..83aa55e4d6a2 100644
--- a/xmloff/source/chart/SchXMLPlotAreaContext.hxx
+++ b/xmloff/source/chart/SchXMLPlotAreaContext.hxx
@@ -105,7 +105,7 @@ public:
         sal_uInt16 nPrefix,
         const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
 private:
     SchXMLImportHelper& mrImportHelper;
@@ -147,7 +147,7 @@ private:
 public:
     SchXMLDataLabelSpanContext( SvXMLImport& rImport, const OUString& rLocalName, ::std::vector<OUString>& rLabels);
     virtual void SAL_CALL characters( const OUString& rChars ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 class SchXMLDataLabelParaContext: public SvXMLImportContext
@@ -204,7 +204,7 @@ public:
         sal_uInt16 nPrefix,
         const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 class SchXMLCoordinateRegionContext : public SvXMLImportContext
diff --git a/xmloff/source/chart/SchXMLSeries2Context.cxx b/xmloff/source/chart/SchXMLSeries2Context.cxx
index 4bf122fa3b46..b046243897a9 100644
--- a/xmloff/source/chart/SchXMLSeries2Context.cxx
+++ b/xmloff/source/chart/SchXMLSeries2Context.cxx
@@ -541,7 +541,7 @@ struct DomainInfo
 
 }
 
-void SchXMLSeries2Context::EndElement()
+void SchXMLSeries2Context::endFastElement(sal_Int32 )
 {
     // special handling for different chart types.  This is necessary as the
     // roles are not yet saved in the file format
diff --git a/xmloff/source/chart/SchXMLSeries2Context.hxx b/xmloff/source/chart/SchXMLSeries2Context.hxx
index 8e5e4636580a..22fb350b777c 100644
--- a/xmloff/source/chart/SchXMLSeries2Context.hxx
+++ b/xmloff/source/chart/SchXMLSeries2Context.hxx
@@ -90,7 +90,7 @@ public:
         sal_uInt16 nPrefix,
         const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     static void initSeriesPropertySets( SeriesDefaultsAndStyles& rSeriesDefaultsAndStyles
         , const css::uno::Reference< css::frame::XModel >& xChartModel );
diff --git a/xmloff/source/chart/SchXMLTableContext.cxx b/xmloff/source/chart/SchXMLTableContext.cxx
index 1ca924579d24..ff4ee0ac168a 100644
--- a/xmloff/source/chart/SchXMLTableContext.cxx
+++ b/xmloff/source/chart/SchXMLTableContext.cxx
@@ -277,7 +277,7 @@ void SchXMLTableContext::StartElement( const uno::Reference< xml::sax::XAttribut
     }
 }
 
-void SchXMLTableContext::EndElement()
+void SchXMLTableContext::endFastElement(sal_Int32 )
 {
     if( mbHasColumnPermutation )
     {
@@ -572,7 +572,7 @@ public:
         sal_uInt16 nPrefix,
         const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 }
@@ -677,7 +677,7 @@ SvXMLImportContextRef SchXMLTableCellContext::CreateChildContext(
     return pContext;
 }
 
-void SchXMLTableCellContext::EndElement()
+void SchXMLTableCellContext::endFastElement(sal_Int32 )
 {
     if( mbReadText && !maCellContent.isEmpty() ) //apply text from <text:p> element
         mrTable.aData[ mrTable.nRowIndex ][ mrTable.nColumnIndex ].aString = maCellContent;
@@ -1065,7 +1065,7 @@ SvXMLImportContextRef SchXMLRangeSomewhereContext::CreateChildContext(
     return nullptr;
 }
 
-void SchXMLRangeSomewhereContext::EndElement()
+void SchXMLRangeSomewhereContext::endFastElement(sal_Int32 )
 {
     mrRangeString = maRangeStringBuffer.makeStringAndClear();
 }
diff --git a/xmloff/source/chart/SchXMLTableContext.hxx b/xmloff/source/chart/SchXMLTableContext.hxx
index f0293195d6ae..faca076e5230 100644
--- a/xmloff/source/chart/SchXMLTableContext.hxx
+++ b/xmloff/source/chart/SchXMLTableContext.hxx
@@ -59,7 +59,7 @@ public:
         const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     void setRowPermutation( const css::uno::Sequence< sal_Int32 > & rPermutation );
     void setColumnPermutation( const css::uno::Sequence< sal_Int32 > & rPermutation );
@@ -180,7 +180,7 @@ public:
         const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 #endif // INCLUDED_XMLOFF_SOURCE_CHART_SCHXMLTABLECONTEXT_HXX
diff --git a/xmloff/source/chart/SchXMLTextListContext.cxx b/xmloff/source/chart/SchXMLTextListContext.cxx
index fdaf1f361896..c04d33ff9281 100644
--- a/xmloff/source/chart/SchXMLTextListContext.cxx
+++ b/xmloff/source/chart/SchXMLTextListContext.cxx
@@ -80,7 +80,7 @@ SchXMLTextListContext::~SchXMLTextListContext()
 {
 }
 
-void SchXMLTextListContext::EndElement()
+void SchXMLTextListContext::endFastElement(sal_Int32 )
 {
     sal_Int32 nCount = m_aTextVector.size();
     m_rTextList.realloc(nCount);
diff --git a/xmloff/source/chart/SchXMLTextListContext.hxx b/xmloff/source/chart/SchXMLTextListContext.hxx
index ef728c84fff2..05893eb6c415 100644
--- a/xmloff/source/chart/SchXMLTextListContext.hxx
+++ b/xmloff/source/chart/SchXMLTextListContext.hxx
@@ -34,7 +34,7 @@ public:
                             const OUString& rLocalName,
                             css::uno::Sequence< OUString>& rTextList );
     virtual ~SchXMLTextListContext() override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx b/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx
index 0d4849dd2575..3b763d7eeab6 100644
--- a/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx
+++ b/xmloff/source/core/XMLEmbeddedObjectImportContext.cxx
@@ -61,7 +61,7 @@ public:
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual void SAL_CALL characters( const OUString& rChars ) override;
 };
@@ -96,7 +96,7 @@ void XMLEmbeddedObjectImportContext_Impl::StartElement(
                             xAttrList );
 }
 
-void XMLEmbeddedObjectImportContext_Impl::EndElement()
+void XMLEmbeddedObjectImportContext_Impl::endFastElement(sal_Int32 )
 {
     xHandler->endElement( GetImport().GetNamespaceMap().GetQNameByKey(
                                 GetPrefix(), GetLocalName() ) );
@@ -273,7 +273,7 @@ void XMLEmbeddedObjectImportContext::StartElement(
                             xAttrList );
 }
 
-void XMLEmbeddedObjectImportContext::EndElement()
+void XMLEmbeddedObjectImportContext::endFastElement(sal_Int32 )
 {
     if( !xHandler.is() )
         return;
diff --git a/xmloff/source/core/xmlictxt.cxx b/xmloff/source/core/xmlictxt.cxx
index d74b28b5fec4..a0b22219b29e 100644
--- a/xmloff/source/core/xmlictxt.cxx
+++ b/xmloff/source/core/xmlictxt.cxx
@@ -60,7 +60,7 @@ void SvXMLImportContext::StartElement( const uno::Reference< xml::sax::XAttribut
 {
 }
 
-void SvXMLImportContext::EndElement()
+void SvXMLImportContext::endFastElement(sal_Int32 )
 {
 }
 
@@ -103,14 +103,8 @@ void SAL_CALL SvXMLImportContext::startUnknownElement(const OUString & /*rNamesp
     StartElement( mrImport.maAttrList.get() );
 }
 
-void SAL_CALL SvXMLImportContext::endFastElement(sal_Int32 )
-{
-    EndElement();
-}
-
 void SAL_CALL SvXMLImportContext::endUnknownElement (const OUString & /*rNamespace*/, const OUString & /*rElementName*/)
 {
-    EndElement();
 }
 
 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL SvXMLImportContext::createFastChildContext
diff --git a/xmloff/source/draw/XMLImageMapContext.cxx b/xmloff/source/draw/XMLImageMapContext.cxx
index 99949c2d5caf..a8f8d13d98b8 100644
--- a/xmloff/source/draw/XMLImageMapContext.cxx
+++ b/xmloff/source/draw/XMLImageMapContext.cxx
@@ -126,7 +126,7 @@ public:
     void StartElement(
         const css::uno::Reference<css::xml::sax::XAttributeList >& xAttrList ) override;
 
-    void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
@@ -195,7 +195,7 @@ void XMLImageMapObjectContext::StartElement(
     }
 }
 
-void XMLImageMapObjectContext::EndElement()
+void XMLImageMapObjectContext::endFastElement(sal_Int32 )
 {
     // only create and insert image map object if validity flag is set
     // (and we actually have an image map)
@@ -611,7 +611,7 @@ SvXMLImportContextRef XMLImageMapContext::CreateChildContext(
     return xContext;
 }
 
-void XMLImageMapContext::EndElement()
+void XMLImageMapContext::endFastElement(sal_Int32 )
 {
     Reference < XPropertySetInfo > xInfo =
         xPropertySet->getPropertySetInfo();
diff --git a/xmloff/source/draw/XMLReplacementImageContext.cxx b/xmloff/source/draw/XMLReplacementImageContext.cxx
index e4a96c41eecc..6752875113cc 100644
--- a/xmloff/source/draw/XMLReplacementImageContext.cxx
+++ b/xmloff/source/draw/XMLReplacementImageContext.cxx
@@ -69,7 +69,7 @@ XMLReplacementImageContext::~XMLReplacementImageContext()
 {
 }
 
-void XMLReplacementImageContext::EndElement()
+void XMLReplacementImageContext::endFastElement(sal_Int32 )
 {
     OSL_ENSURE( !m_sHRef.isEmpty() || m_xBase64Stream.is(),
                 "neither URL nor base64 image data given" );
diff --git a/xmloff/source/draw/descriptionimp.cxx b/xmloff/source/draw/descriptionimp.cxx
index 26b006d8164b..0e41cd680331 100644
--- a/xmloff/source/draw/descriptionimp.cxx
+++ b/xmloff/source/draw/descriptionimp.cxx
@@ -45,7 +45,7 @@ SdXMLDescriptionContext::~SdXMLDescriptionContext()
 {
 }
 
-void SdXMLDescriptionContext::EndElement()
+void SdXMLDescriptionContext::endFastElement(sal_Int32 )
 {
     if( msText.isEmpty() )
         return;
diff --git a/xmloff/source/draw/descriptionimp.hxx b/xmloff/source/draw/descriptionimp.hxx
index f45feb775f15..6dee51daf293 100644
--- a/xmloff/source/draw/descriptionimp.hxx
+++ b/xmloff/source/draw/descriptionimp.hxx
@@ -39,7 +39,7 @@ public:
         const css::uno::Reference< css::drawing::XShape >& rxShape );
     virtual ~SdXMLDescriptionContext() override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     // This method is called for all characters that are contained in the
     // current element. The default is to ignore them.
diff --git a/xmloff/source/draw/eventimp.cxx b/xmloff/source/draw/eventimp.cxx
index 3244cb105ffc..9d6415cfe013 100644
--- a/xmloff/source/draw/eventimp.cxx
+++ b/xmloff/source/draw/eventimp.cxx
@@ -87,7 +87,7 @@ public:
     SdXMLEventContext( SvXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLocalName, const Reference< XAttributeList>& xAttrList, const Reference< XShape >& rxShape );
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName,    const Reference< XAttributeList>& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 class XMLEventSoundContext : public SvXMLImportContext
@@ -241,7 +241,7 @@ SvXMLImportContextRef SdXMLEventContext::CreateChildContext( sal_uInt16 nPrefix,
     return new XMLEventSoundContext( GetImport(), nPrefix, rLocalName, xAttrList, this );
 }
 
-void SdXMLEventContext::EndElement()
+void SdXMLEventContext::endFastElement(sal_Int32 )
 {
     GetImport().GetShapeImport()->addShapeEvents(maData);
 }
diff --git a/xmloff/source/draw/layerimp.cxx b/xmloff/source/draw/layerimp.cxx
index c4bfedbea838..ab809d320695 100644
--- a/xmloff/source/draw/layerimp.cxx
+++ b/xmloff/source/draw/layerimp.cxx
@@ -56,7 +56,7 @@ public:
     SdXMLLayerContext( SvXMLImport& rImport, sal_uInt16 nPrefix, const OUString& rLocalName, const Reference< XAttributeList >& xAttrList, const Reference< XNameAccess >& xLayerManager );
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const Reference< XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
 private:
     css::uno::Reference< css::container::XNameAccess > mxLayerManager;
@@ -111,7 +111,7 @@ SvXMLImportContextRef SdXMLLayerContext::CreateChildContext( sal_uInt16 nPrefix,
     return nullptr;
 }
 
-void SdXMLLayerContext::EndElement()
+void SdXMLLayerContext::endFastElement(sal_Int32 )
 {
     SAL_WARN_IF( msName.isEmpty(), "xmloff", "xmloff::SdXMLLayerContext::EndElement(), draw:layer element without draw:name!" );
     if( msName.isEmpty() )
diff --git a/xmloff/source/draw/ximp3dscene.cxx b/xmloff/source/draw/ximp3dscene.cxx
index 50c400e5c0c9..9734e699cea1 100644
--- a/xmloff/source/draw/ximp3dscene.cxx
+++ b/xmloff/source/draw/ximp3dscene.cxx
@@ -151,7 +151,7 @@ void SdXML3DSceneShapeContext::StartElement(const uno::Reference< xml::sax::XAtt
     }
 }
 
-void SdXML3DSceneShapeContext::EndElement()
+void SdXML3DSceneShapeContext::endFastElement(sal_Int32 nElement)
 {
     if(!mxShape.is())
         return;
@@ -166,7 +166,7 @@ void SdXML3DSceneShapeContext::EndElement()
         GetImport().GetShapeImport()->popGroupAndPostProcess();
 
     // call parent
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 }
 
 SvXMLImportContextRef SdXML3DSceneShapeContext::CreateChildContext( sal_uInt16 nPrefix,
diff --git a/xmloff/source/draw/ximp3dscene.hxx b/xmloff/source/draw/ximp3dscene.hxx
index 7597857a9205..f613442d257c 100644
--- a/xmloff/source/draw/ximp3dscene.hxx
+++ b/xmloff/source/draw/ximp3dscene.hxx
@@ -44,7 +44,7 @@ public:
     virtual ~SdXML3DSceneShapeContext() override;
 
     virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix, const OUString& rLocalName,
diff --git a/xmloff/source/draw/ximpcustomshape.cxx b/xmloff/source/draw/ximpcustomshape.cxx
index e923e040e2b2..9082528b05c9 100644
--- a/xmloff/source/draw/ximpcustomshape.cxx
+++ b/xmloff/source/draw/ximpcustomshape.cxx
@@ -1177,7 +1177,7 @@ static void CheckAndResolveEquationParameter( css::drawing::EnhancedCustomShapeP
     }
 }
 
-void XMLEnhancedCustomShapeContext::EndElement()
+void XMLEnhancedCustomShapeContext::endFastElement(sal_Int32 )
 {
     // resolve properties that are indexing an Equation
     if ( !maEquations.empty() )
diff --git a/xmloff/source/draw/ximpcustomshape.hxx b/xmloff/source/draw/ximpcustomshape.hxx
index aa662f176069..b5f91de1c499 100644
--- a/xmloff/source/draw/ximpcustomshape.hxx
+++ b/xmloff/source/draw/ximpcustomshape.hxx
@@ -55,7 +55,7 @@ public:
         const OUString& rLocalName, std::vector< css::beans::PropertyValue >& rCustomShapeGeometry );
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList> & xAttrList ) override;
diff --git a/xmloff/source/draw/ximpgrp.cxx b/xmloff/source/draw/ximpgrp.cxx
index efe6d3751b1a..c6d7d12c2843 100644
--- a/xmloff/source/draw/ximpgrp.cxx
+++ b/xmloff/source/draw/ximpgrp.cxx
@@ -90,12 +90,12 @@ void SdXMLGroupShapeContext::StartElement(const uno::Reference< xml::sax::XAttri
     GetImport().GetShapeImport()->finishShape( mxShape, mxAttrList, mxShapes );
 }
 
-void SdXMLGroupShapeContext::EndElement()
+void SdXMLGroupShapeContext::endFastElement(sal_Int32 nElement)
 {
     if( mxChildren.is() )
         GetImport().GetShapeImport()->popGroupAndPostProcess();
 
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/draw/ximpgrp.hxx b/xmloff/source/draw/ximpgrp.hxx
index c3f6726238eb..db8344a026e4 100644
--- a/xmloff/source/draw/ximpgrp.hxx
+++ b/xmloff/source/draw/ximpgrp.hxx
@@ -43,7 +43,7 @@ public:
         sal_uInt16 nPrefix, const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
     virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 #endif // INCLUDED_XMLOFF_SOURCE_DRAW_XIMPGRP_HXX
diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx
index 2f84f80d09dc..cc75d01b80c6 100644
--- a/xmloff/source/draw/ximpshap.cxx
+++ b/xmloff/source/draw/ximpshap.cxx
@@ -343,7 +343,7 @@ void SdXMLShapeContext::StartElement(const uno::Reference< xml::sax::XAttributeL
     GetImport().GetShapeImport()->finishShape( mxShape, mxAttrList, mxShapes );
 }
 
-void SdXMLShapeContext::EndElement()
+void SdXMLShapeContext::endFastElement(sal_Int32 )
 {
     if(mxCursor.is())
     {
@@ -2146,7 +2146,7 @@ void SdXMLMeasureShapeContext::StartElement(const uno::Reference< xml::sax::XAtt
     SdXMLShapeContext::StartElement(xAttrList);
 }
 
-void SdXMLMeasureShapeContext::EndElement()
+void SdXMLMeasureShapeContext::endFastElement(sal_Int32 nElement)
 {
     do
     {
@@ -2165,7 +2165,7 @@ void SdXMLMeasureShapeContext::EndElement()
     }
     while(false);
 
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 }
 
 
@@ -2456,7 +2456,7 @@ void SdXMLGraphicObjectShapeContext::StartElement( const css::uno::Reference< cs
     SdXMLShapeContext::StartElement(mxAttrList);
 }
 
-void SdXMLGraphicObjectShapeContext::EndElement()
+void SdXMLGraphicObjectShapeContext::endFastElement(sal_Int32 nElement)
 {
     if (mxBase64Stream.is())
     {
@@ -2471,7 +2471,7 @@ void SdXMLGraphicObjectShapeContext::EndElement()
         }
     }
 
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 }
 
 SvXMLImportContextRef SdXMLGraphicObjectShapeContext::CreateChildContext(
@@ -2578,12 +2578,12 @@ void SdXMLChartShapeContext::StartElement(const uno::Reference< xml::sax::XAttri
         mxChartContext->StartElement( xAttrList );
 }
 
-void SdXMLChartShapeContext::EndElement()
+void SdXMLChartShapeContext::endFastElement(sal_Int32 nElement)
 {
     if( mxChartContext.is() )
-        mxChartContext->EndElement();
+        mxChartContext->endFastElement(nElement);
 
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 }
 
 void SdXMLChartShapeContext::characters( const OUString& rChars )
@@ -2709,7 +2709,7 @@ void SdXMLObjectShapeContext::StartElement( const css::uno::Reference< css::xml:
     GetImport().GetShapeImport()->finishShape( mxShape, mxAttrList, mxShapes );
 }
 
-void SdXMLObjectShapeContext::EndElement()
+void SdXMLObjectShapeContext::endFastElement(sal_Int32 nElement)
 {
     if (GetImport().isGeneratorVersionOlderThan(
                 SvXMLImport::OOo_34x, SvXMLImport::LO_41x)) // < LO 4.0
@@ -2741,7 +2741,7 @@ void SdXMLObjectShapeContext::EndElement()
             xProps->setPropertyValue("PersistName", uno::makeAny( aPersistName ) );
     }
 
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 }
 
 // this is called from the parent group for each unparsed attribute in the attribute list
@@ -2873,7 +2873,7 @@ void SdXMLAppletShapeContext::processAttribute( sal_uInt16 nPrefix, const OUStri
     SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue );
 }
 
-void SdXMLAppletShapeContext::EndElement()
+void SdXMLAppletShapeContext::endFastElement(sal_Int32 nElement)
 {
     uno::Reference< beans::XPropertySet > xProps( mxShape, uno::UNO_QUERY );
     if( xProps.is() )
@@ -2916,7 +2916,7 @@ void SdXMLAppletShapeContext::EndElement()
         SetThumbnail();
     }
 
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 }
 
 SvXMLImportContextRef SdXMLAppletShapeContext::CreateChildContext( sal_uInt16 p_nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList )
@@ -3080,7 +3080,7 @@ void SdXMLPluginShapeContext::processAttribute( sal_uInt16 nPrefix, const OUStri
     SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue );
 }
 
-void SdXMLPluginShapeContext::EndElement()
+void SdXMLPluginShapeContext::endFastElement(sal_Int32 nElement)
 {
     uno::Reference< beans::XPropertySet > xProps( mxShape, uno::UNO_QUERY );
 
@@ -3182,7 +3182,7 @@ void SdXMLPluginShapeContext::EndElement()
         SetThumbnail();
     }
 
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 }
 
 SvXMLImportContextRef SdXMLPluginShapeContext::CreateChildContext( sal_uInt16 p_nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList )
@@ -3296,7 +3296,7 @@ void SdXMLFloatingFrameShapeContext::processAttribute( sal_uInt16 nPrefix, const
     SdXMLShapeContext::processAttribute( nPrefix, rLocalName, rValue );
 }
 
-void SdXMLFloatingFrameShapeContext::EndElement()
+void SdXMLFloatingFrameShapeContext::endFastElement(sal_Int32 nElement)
 {
     uno::Reference< beans::XPropertySet > xProps( mxShape, uno::UNO_QUERY );
 
@@ -3311,7 +3311,7 @@ void SdXMLFloatingFrameShapeContext::EndElement()
     }
 
     SetThumbnail();
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 }
 
 
@@ -3565,7 +3565,7 @@ void SdXMLFrameShapeContext::StartElement(const uno::Reference< xml::sax::XAttri
     // ignore
 }
 
-void SdXMLFrameShapeContext::EndElement()
+void SdXMLFrameShapeContext::endFastElement(sal_Int32 nElement)
 {
     // solve if multiple image child contexts were imported
     SvXMLImportContextRef const pSelectedContext(solveMultipleImages());
@@ -3627,14 +3627,15 @@ void SdXMLFrameShapeContext::EndElement()
 
             if( mxImplContext.is() )
             {
+                auto nElement2 = XML_ELEMENT(DRAW, eToken);
                 mxImplContext->StartElement( mxAttrList );
-                mxImplContext->EndElement();
+                mxImplContext->endFastElement(nElement2);
             }
         }
     }
 
     mxImplContext = nullptr;
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 }
 
 void SdXMLFrameShapeContext::processAttribute( sal_uInt16 nPrefix,
@@ -3752,7 +3753,7 @@ void SdXMLCustomShapeContext::StartElement( const uno::Reference< xml::sax::XAtt
     SdXMLShapeContext::StartElement(xAttrList);
 }
 
-void SdXMLCustomShapeContext::EndElement()
+void SdXMLCustomShapeContext::endFastElement(sal_Int32 nElement)
 {
     // Customshapes remember mirror state in its enhanced geometry.
     // SetTransformation() in StartElement() may have applied mirroring, but that is not yet
@@ -3850,7 +3851,7 @@ void SdXMLCustomShapeContext::EndElement()
         }
     }
 
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 
     // tdf#98163 call a custom slot to be able to reset the UNO API
     // implementations held on the SdrObjects of type
@@ -3987,12 +3988,12 @@ void SdXMLTableShapeContext::StartElement( const css::uno::Reference< css::xml::
     }
 }
 
-void SdXMLTableShapeContext::EndElement()
+void SdXMLTableShapeContext::endFastElement(sal_Int32 nElement)
 {
     if( mxTableImportContext.is() )
-        mxTableImportContext->EndElement();
+        mxTableImportContext->endFastElement(nElement);
 
-    SdXMLShapeContext::EndElement();
+    SdXMLShapeContext::endFastElement(nElement);
 
     if( mxShape.is() )
     {
diff --git a/xmloff/source/draw/ximpshap.hxx b/xmloff/source/draw/ximpshap.hxx
index d93356369e85..308322a2c21f 100644
--- a/xmloff/source/draw/ximpshap.hxx
+++ b/xmloff/source/draw/ximpshap.hxx
@@ -107,7 +107,7 @@ public:
     virtual ~SdXMLShapeContext() override;
 
     virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
@@ -322,7 +322,7 @@ public:
         bool bTemporaryShape);
     virtual ~SdXMLMeasureShapeContext() override;
     virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     // this is called from the parent group for each unparsed attribute in the attribute list
     virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override;
@@ -387,7 +387,7 @@ public:
     virtual ~SdXMLGraphicObjectShapeContext() override;
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
 
@@ -410,7 +410,7 @@ public:
         bool bTemporaryShape);
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     virtual void SAL_CALL characters( const OUString& rChars ) override;
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
@@ -435,7 +435,7 @@ public:
     virtual ~SdXMLObjectShapeContext() override;
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
@@ -465,7 +465,7 @@ public:
     virtual ~SdXMLAppletShapeContext() override;
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
@@ -494,7 +494,7 @@ public:
     virtual ~SdXMLPluginShapeContext() override;
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
@@ -522,7 +522,7 @@ public:
     virtual ~SdXMLFloatingFrameShapeContext() override;
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     // this is called from the parent group for each unparsed attribute in the attribute list
     virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override;
@@ -556,7 +556,7 @@ public:
         const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual void processAttribute( sal_uInt16 nPrefix, const OUString& rLocalName, const OUString& rValue ) override;
 };
@@ -577,7 +577,7 @@ public:
     virtual ~SdXMLCustomShapeContext() override;
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName,
         const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
@@ -599,7 +599,7 @@ public:
     virtual ~SdXMLTableShapeContext() override;
 
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
 
diff --git a/xmloff/source/forms/elementimport.cxx b/xmloff/source/forms/elementimport.cxx
index 38579d399c1e..225a68fa13a4 100644
--- a/xmloff/source/forms/elementimport.cxx
+++ b/xmloff/source/forms/elementimport.cxx
@@ -175,7 +175,7 @@ namespace xmloff
         return OPropertyImport::CreateChildContext(_nPrefix, _rLocalName, _rxAttrList);
     }
 
-    void OElementImport::EndElement()
+    void OElementImport::endFastElement(sal_Int32 )
     {
         OSL_ENSURE(m_xElement.is(), "OElementImport::EndElement: invalid element created!");
         if (!m_xElement.is())
@@ -895,7 +895,7 @@ namespace xmloff
             _rPropValue.Value = PropertyConversion::convertString(aProp.Type, sValue);
     }
 
-    void OControlImport::EndElement()
+    void OControlImport::endFastElement(sal_Int32 nElement)
     {
         OSL_ENSURE(m_xElement.is(), "OControlImport::EndElement: invalid control!");
         if ( !m_xElement.is() )
@@ -967,7 +967,7 @@ namespace xmloff
         }
 
         // let the base class set all the values
-        OElementImport::EndElement();
+        OElementImport::endFastElement(nElement);
 
         // restore the "value property value", if necessary
         if ( bRestoreValuePropertyValue && pValueProperty )
@@ -1445,13 +1445,13 @@ namespace xmloff
         }
     }
 
-    void OTextLikeImport::EndElement()
+    void OTextLikeImport::endFastElement(sal_Int32 nElement)
     {
         removeRedundantCurrentValue();
         adjustDefaultControlProperty();
 
         // let the base class do the stuff
-        OControlImport::EndElement();
+        OControlImport::endFastElement(nElement);
 
         // some cleanups
         rtl::Reference < XMLTextImportHelper > xTextImportHelper( m_rContext.getGlobalContext().GetTextImport() );
@@ -1519,7 +1519,7 @@ namespace xmloff
         }
     }
 
-    void OListAndComboImport::EndElement()
+    void OListAndComboImport::endFastElement(sal_Int32 nElement)
     {
         // append the list source property the properties sequence of our importer
         // the string item list
@@ -1555,7 +1555,7 @@ namespace xmloff
             implPushBackPropertyValue(aDefaultSelected);
         }
 
-        OControlImport::EndElement();
+        OControlImport::endFastElement(nElement);
 
         // the external list source, if applicable
         if ( m_xElement.is() && !m_sCellListSource.isEmpty() )
@@ -1848,9 +1848,9 @@ namespace xmloff
         return OControlImport::CreateChildContext(_nPrefix, _rLocalName, _rxAttrList);
     }
 
-    void OGridImport::EndElement()
+    void OGridImport::endFastElement(sal_Int32 nElement)
     {
-        OControlImport::EndElement();
+        OControlImport::endFastElement(nElement);
 
         // now that we have all children, attach the events
         css::uno::Reference< css::container::XIndexAccess > xIndexContainer(m_xMeAsContainer, css::uno::UNO_QUERY);
@@ -1911,9 +1911,9 @@ namespace xmloff
         simulateDefaultedAttribute(OAttributeMetaData::getCommonControlAttributeName(CCAFlags::TargetFrame), PROPERTY_TARGETFRAME, "_blank");
     }
 
-    void OFormImport::EndElement()
+    void OFormImport::endFastElement(sal_Int32 nElement)
     {
-        OElementImport::EndElement();
+        OElementImport::endFastElement(nElement);
 
         // now that we have all children, attach the events
         css::uno::Reference< css::container::XIndexAccess > xIndexContainer(m_xMeAsContainer, css::uno::UNO_QUERY);
diff --git a/xmloff/source/forms/elementimport.hxx b/xmloff/source/forms/elementimport.hxx
index a33993213443..62bf61152597 100644
--- a/xmloff/source/forms/elementimport.hxx
+++ b/xmloff/source/forms/elementimport.hxx
@@ -118,7 +118,7 @@ namespace xmloff
         virtual SvXMLImportContextRef CreateChildContext(
             sal_uInt16 _nPrefix, const OUString& _rLocalName,
             const css::uno::Reference< css::xml::sax::XAttributeList >& _rxAttrList) override;
-        virtual void    EndElement() override;
+        virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
         // OPropertyImport overridables
         virtual bool    handleAttribute(sal_uInt16 _nNamespaceKey,
@@ -220,7 +220,7 @@ namespace xmloff
         // SvXMLImportContext overridables
         virtual void StartElement(
             const css::uno::Reference< css::xml::sax::XAttributeList >& _rxAttrList) override;
-        virtual void    EndElement() override;
+        virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
         // OPropertyImport overridables
         virtual bool    handleAttribute(sal_uInt16 _nNamespaceKey,
@@ -443,7 +443,7 @@ namespace xmloff
         virtual SvXMLImportContextRef CreateChildContext(
             sal_uInt16 _nPrefix, const OUString& _rLocalName,
             const css::uno::Reference< css::xml::sax::XAttributeList >& _rxAttrList) override;
-        virtual void    EndElement() override;
+        virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     private:
         void    adjustDefaultControlProperty();
@@ -493,7 +493,7 @@ namespace xmloff
         virtual SvXMLImportContextRef CreateChildContext(
             sal_uInt16 _nPrefix, const OUString& _rLocalName,
             const css::uno::Reference< css::xml::sax::XAttributeList >& _rxAttrList) override;
-        virtual void    EndElement() override;
+        virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
         // OPropertyImport overridables
         virtual bool    handleAttribute(sal_uInt16 _nNamespaceKey,
@@ -613,7 +613,7 @@ namespace xmloff
         virtual SvXMLImportContextRef CreateChildContext(
             sal_uInt16 _nPrefix, const OUString& _rLocalName,
             const css::uno::Reference< css::xml::sax::XAttributeList >& _rxAttrList) override;
-        virtual void EndElement() override;
+        virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     private:
         // OElementImport overridables
@@ -639,7 +639,7 @@ namespace xmloff
             const css::uno::Reference< css::xml::sax::XAttributeList >& _rxAttrList) override;
         virtual void    StartElement(
             const css::uno::Reference< css::xml::sax::XAttributeList >& _rxAttrList) override;
-        virtual void    EndElement() override;
+        virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
         // OPropertyImport overridables
         virtual bool    handleAttribute(sal_uInt16 _nNamespaceKey,
diff --git a/xmloff/source/forms/eventimport.cxx b/xmloff/source/forms/eventimport.cxx
index 5e7d1e815ab9..0744bb8270fc 100644
--- a/xmloff/source/forms/eventimport.cxx
+++ b/xmloff/source/forms/eventimport.cxx
@@ -38,7 +38,7 @@ namespace xmloff
     {
     }
 
-    void OFormEventsImportContext::EndElement()
+    void OFormEventsImportContext::endFastElement(sal_Int32 )
     {
         Sequence< ScriptEventDescriptor > aTranslated(aCollectEvents.size());
         ScriptEventDescriptor* pTranslated = aTranslated.getArray();
diff --git a/xmloff/source/forms/eventimport.hxx b/xmloff/source/forms/eventimport.hxx
index da1d765cf5da..49e5216dceba 100644
--- a/xmloff/source/forms/eventimport.hxx
+++ b/xmloff/source/forms/eventimport.hxx
@@ -42,7 +42,7 @@ namespace xmloff
             IEventAttacher& _rEventAttacher);
 
     protected:
-        virtual void EndElement() override;
+        virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     };
 
     //= ODefaultEventAttacherManager
diff --git a/xmloff/source/forms/officeforms.cxx b/xmloff/source/forms/officeforms.cxx
index 491a8afefb65..6933e379568d 100644
--- a/xmloff/source/forms/officeforms.cxx
+++ b/xmloff/source/forms/officeforms.cxx
@@ -110,7 +110,7 @@ namespace xmloff
         }
     }
 
-    void OFormsRootImport::EndElement()
+    void OFormsRootImport::endFastElement(sal_Int32 )
     {
         LEAVE_LOG_CONTEXT( );
     }
diff --git a/xmloff/source/forms/officeforms.hxx b/xmloff/source/forms/officeforms.hxx
index 1011f523c1b0..5efca14d6873 100644
--- a/xmloff/source/forms/officeforms.hxx
+++ b/xmloff/source/forms/officeforms.hxx
@@ -47,7 +47,7 @@ namespace xmloff
         virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName,
             const css::uno::Reference< css::xml::sax::XAttributeList>& xAttrList ) override;
         virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& _rxAttrList ) override;
-        virtual void EndElement() override;
+        virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     private:
         void implImportBool(
diff --git a/xmloff/source/forms/propertyimport.cxx b/xmloff/source/forms/propertyimport.cxx
index 8090b56342e6..4a875a51530e 100644
--- a/xmloff/source/forms/propertyimport.cxx
+++ b/xmloff/source/forms/propertyimport.cxx
@@ -476,7 +476,7 @@ void OListPropertyContext::StartElement( const Reference< XAttributeList >& _rxA
     }
 }
 
-void OListPropertyContext::EndElement()
+void OListPropertyContext::endFastElement(sal_Int32 )
 {
     OSL_ENSURE( !m_sPropertyName.isEmpty() && !m_sPropertyType.isEmpty(),
         "OListPropertyContext::EndElement: no property name or type!" );
diff --git a/xmloff/source/forms/propertyimport.hxx b/xmloff/source/forms/propertyimport.hxx
index c2e6d09d1225..1b143df647ae 100644
--- a/xmloff/source/forms/propertyimport.hxx
+++ b/xmloff/source/forms/propertyimport.hxx
@@ -202,7 +202,7 @@ namespace xmloff
         virtual void StartElement(
             const css::uno::Reference< css::xml::sax::XAttributeList >& _rxAttrList ) override;
 
-        virtual void EndElement() override;
+        virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
         virtual SvXMLImportContextRef CreateChildContext(
             sal_uInt16 _nPrefix, const OUString& _rLocalName,
diff --git a/xmloff/source/table/XMLTableImport.cxx b/xmloff/source/table/XMLTableImport.cxx
index e6c5d30bc327..0498ae89a37f 100644
--- a/xmloff/source/table/XMLTableImport.cxx
+++ b/xmloff/source/table/XMLTableImport.cxx
@@ -102,7 +102,7 @@ public:
 
     virtual void StartElement( const Reference< XAttributeList >& xAttrList ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     void InitColumns();
 
@@ -139,7 +139,7 @@ public:
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix, const OUString& rLocalName, const Reference< XAttributeList >& xAttrList ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     sal_Int32 getColumnSpan() const { return mnColSpan; }
     sal_Int32 getRowSpan() const { return mnRowSpan; }
@@ -592,7 +592,7 @@ void XMLTableImportContext::StartElement( const Reference< XAttributeList >& /*x
 {
 }
 
-void XMLTableImportContext::EndElement()
+void XMLTableImportContext::endFastElement(sal_Int32 )
 {
     for( const std::shared_ptr< MergeInfo >& xInfo : maMergeInfos )
     {
@@ -723,7 +723,7 @@ SvXMLImportContextRef XMLCellImportContext::CreateChildContext( sal_uInt16 nPref
     return pContext;
 }
 
-void XMLCellImportContext::EndElement()
+void XMLCellImportContext::endFastElement(sal_Int32 )
 {
     if(mxCursor.is())
     {
diff --git a/xmloff/source/text/XMLCalculationSettingsContext.cxx b/xmloff/source/text/XMLCalculationSettingsContext.cxx
index ab524c9465ac..39702467e894 100644
--- a/xmloff/source/text/XMLCalculationSettingsContext.cxx
+++ b/xmloff/source/text/XMLCalculationSettingsContext.cxx
@@ -67,7 +67,7 @@ XMLCalculationSettingsContext::XMLCalculationSettingsContext( SvXMLImport& rImpo
 XMLCalculationSettingsContext::~XMLCalculationSettingsContext()
 {
 }
-void XMLCalculationSettingsContext::EndElement()
+void XMLCalculationSettingsContext::endFastElement(sal_Int32 )
 {
     if (nYear != 1930 )
     {
diff --git a/xmloff/source/text/XMLCalculationSettingsContext.hxx b/xmloff/source/text/XMLCalculationSettingsContext.hxx
index 1dc6b57c9b64..0a7cbc879a1a 100644
--- a/xmloff/source/text/XMLCalculationSettingsContext.hxx
+++ b/xmloff/source/text/XMLCalculationSettingsContext.hxx
@@ -32,7 +32,7 @@ public:
                                     const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList );
 
     virtual ~XMLCalculationSettingsContext() override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
 };
 
diff --git a/xmloff/source/text/XMLChangeElementImportContext.cxx b/xmloff/source/text/XMLChangeElementImportContext.cxx
index 5f5f5eabb4ab..b5422cb09828 100644
--- a/xmloff/source/text/XMLChangeElementImportContext.cxx
+++ b/xmloff/source/text/XMLChangeElementImportContext.cxx
@@ -85,7 +85,7 @@ void XMLChangeElementImportContext::StartElement( const Reference< XAttributeLis
     }
 }
 
-void XMLChangeElementImportContext::EndElement()
+void XMLChangeElementImportContext::endFastElement(sal_Int32 )
 {
     if(bAcceptContent)
     {
diff --git a/xmloff/source/text/XMLChangeElementImportContext.hxx b/xmloff/source/text/XMLChangeElementImportContext.hxx
index 99ba062c6339..b0f24894b3ac 100644
--- a/xmloff/source/text/XMLChangeElementImportContext.hxx
+++ b/xmloff/source/text/XMLChangeElementImportContext.hxx
@@ -77,7 +77,7 @@ public:
     // flag at the corresponding TextImportHelper
     virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 #endif
diff --git a/xmloff/source/text/XMLChangeInfoContext.cxx b/xmloff/source/text/XMLChangeInfoContext.cxx
index 71ed643bc33c..e50d9fbeff5e 100644
--- a/xmloff/source/text/XMLChangeInfoContext.cxx
+++ b/xmloff/source/text/XMLChangeInfoContext.cxx
@@ -75,7 +75,7 @@ SvXMLImportContextRef XMLChangeInfoContext::CreateChildContext(
     return xContext;
 }
 
-void XMLChangeInfoContext::EndElement()
+void XMLChangeInfoContext::endFastElement(sal_Int32 )
 {
     // set values at changed region context
     rChangedRegion.SetChangeInfo(rType, sAuthorBuffer.makeStringAndClear(),
diff --git a/xmloff/source/text/XMLChangeInfoContext.hxx b/xmloff/source/text/XMLChangeInfoContext.hxx
index d86f9ea7b5fd..2c7bb3fd7c56 100644
--- a/xmloff/source/text/XMLChangeInfoContext.hxx
+++ b/xmloff/source/text/XMLChangeInfoContext.hxx
@@ -65,7 +65,7 @@ public:
         const OUString& rLocalName,
         const css::uno::Reference<css::xml::sax::XAttributeList >& xAttrList ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
 };
 
diff --git a/xmloff/source/text/XMLChangedRegionImportContext.cxx b/xmloff/source/text/XMLChangedRegionImportContext.cxx
index 00e5062a9787..9b4723b3d4df 100644
--- a/xmloff/source/text/XMLChangedRegionImportContext.cxx
+++ b/xmloff/source/text/XMLChangedRegionImportContext.cxx
@@ -127,7 +127,7 @@ SvXMLImportContextRef XMLChangedRegionImportContext::CreateChildContext(
     return xContext;
 }
 
-void XMLChangedRegionImportContext::EndElement()
+void XMLChangedRegionImportContext::endFastElement(sal_Int32 )
 {
     // restore old XCursor (if necessary)
     if (xOldCursor.is())
diff --git a/xmloff/source/text/XMLChangedRegionImportContext.hxx b/xmloff/source/text/XMLChangedRegionImportContext.hxx
index 629a3090f7cd..24501e9508d1 100644
--- a/xmloff/source/text/XMLChangedRegionImportContext.hxx
+++ b/xmloff/source/text/XMLChangedRegionImportContext.hxx
@@ -68,7 +68,7 @@ public:
         const OUString& rLocalName,
         const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
 
     /// change info: To be called from change-info context
diff --git a/xmloff/source/text/XMLFootnoteImportContext.cxx b/xmloff/source/text/XMLFootnoteImportContext.cxx
index d2db5a883157..645e910c8a36 100644
--- a/xmloff/source/text/XMLFootnoteImportContext.cxx
+++ b/xmloff/source/text/XMLFootnoteImportContext.cxx
@@ -150,7 +150,7 @@ void XMLFootnoteImportContext::StartElement(
     // else: ignore footnote! Content will be merged into document.
 }
 
-void XMLFootnoteImportContext::EndElement()
+void XMLFootnoteImportContext::endFastElement(sal_Int32 )
 {
     // get rid of last dummy paragraph
     rHelper.DeleteParagraph();
diff --git a/xmloff/source/text/XMLFootnoteImportContext.hxx b/xmloff/source/text/XMLFootnoteImportContext.hxx
index 30f197f81c4f..72ad330c876a 100644
--- a/xmloff/source/text/XMLFootnoteImportContext.hxx
+++ b/xmloff/source/text/XMLFootnoteImportContext.hxx
@@ -64,7 +64,7 @@ protected:
     virtual void StartElement(
         const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLIndexAlphabeticalSourceContext.cxx b/xmloff/source/text/XMLIndexAlphabeticalSourceContext.cxx
index 7ecc22036da5..3c1725887fce 100644
--- a/xmloff/source/text/XMLIndexAlphabeticalSourceContext.cxx
+++ b/xmloff/source/text/XMLIndexAlphabeticalSourceContext.cxx
@@ -161,7 +161,7 @@ void XMLIndexAlphabeticalSourceContext::ProcessAttribute(
     }
 }
 
-void XMLIndexAlphabeticalSourceContext::EndElement()
+void XMLIndexAlphabeticalSourceContext::endFastElement(sal_Int32 nElement)
 {
 
     Any aAny;
@@ -194,7 +194,7 @@ void XMLIndexAlphabeticalSourceContext::EndElement()
         rIndexPropertySet->setPropertyValue("Locale", aAny);
     }
 
-    XMLIndexSourceBaseContext::EndElement();
+    XMLIndexSourceBaseContext::endFastElement(nElement);
 }
 
 SvXMLImportContextRef XMLIndexAlphabeticalSourceContext::CreateChildContext(
diff --git a/xmloff/source/text/XMLIndexAlphabeticalSourceContext.hxx b/xmloff/source/text/XMLIndexAlphabeticalSourceContext.hxx
index aa640d1f4fb3..bf903ab091c4 100644
--- a/xmloff/source/text/XMLIndexAlphabeticalSourceContext.hxx
+++ b/xmloff/source/text/XMLIndexAlphabeticalSourceContext.hxx
@@ -68,7 +68,7 @@ protected:
         enum IndexSourceParamEnum eParam,
         const OUString& rValue) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLIndexBibliographyEntryContext.cxx b/xmloff/source/text/XMLIndexBibliographyEntryContext.cxx
index e03aeb02dbc0..343b86dcded3 100644
--- a/xmloff/source/text/XMLIndexBibliographyEntryContext.cxx
+++ b/xmloff/source/text/XMLIndexBibliographyEntryContext.cxx
@@ -136,12 +136,12 @@ void XMLIndexBibliographyEntryContext::StartElement(
     m_nValues++;
 }
 
-void XMLIndexBibliographyEntryContext::EndElement()
+void XMLIndexBibliographyEntryContext::endFastElement(sal_Int32 nElement)
 {
     // only valid, if we have bibliography info
     if (bBibliographyInfoOK)
     {
-        XMLIndexSimpleEntryContext::EndElement();
+        XMLIndexSimpleEntryContext::endFastElement(nElement);
     }
 }
 
diff --git a/xmloff/source/text/XMLIndexBibliographyEntryContext.hxx b/xmloff/source/text/XMLIndexBibliographyEntryContext.hxx
index e2fd7e108e9b..f364fe4e657e 100644
--- a/xmloff/source/text/XMLIndexBibliographyEntryContext.hxx
+++ b/xmloff/source/text/XMLIndexBibliographyEntryContext.hxx
@@ -61,7 +61,7 @@ protected:
         const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
 
     /** call FillPropertyValues and insert into template */
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     /** fill property values for this template entry */
     virtual void FillPropertyValues(
diff --git a/xmloff/source/text/XMLIndexBibliographySourceContext.cxx b/xmloff/source/text/XMLIndexBibliographySourceContext.cxx
index 099400df6ea1..8434c6adccfa 100644
--- a/xmloff/source/text/XMLIndexBibliographySourceContext.cxx
+++ b/xmloff/source/text/XMLIndexBibliographySourceContext.cxx
@@ -56,13 +56,11 @@ void XMLIndexBibliographySourceContext::ProcessAttribute(
     // We have no attributes. Who wants attributes, anyway?
 }
 
-
-void XMLIndexBibliographySourceContext::EndElement()
+void XMLIndexBibliographySourceContext::endFastElement(sal_Int32 )
 {
     // No attributes, no properties.
 }
 
-
 SvXMLImportContextRef XMLIndexBibliographySourceContext::CreateChildContext(
     sal_uInt16 nPrefix,
     const OUString& rLocalName,
diff --git a/xmloff/source/text/XMLIndexBibliographySourceContext.hxx b/xmloff/source/text/XMLIndexBibliographySourceContext.hxx
index c2f7f928561a..7d8f42f8d433 100644
--- a/xmloff/source/text/XMLIndexBibliographySourceContext.hxx
+++ b/xmloff/source/text/XMLIndexBibliographySourceContext.hxx
@@ -53,7 +53,7 @@ protected:
         enum IndexSourceParamEnum eParam,
         const OUString& rValue) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLIndexObjectSourceContext.cxx b/xmloff/source/text/XMLIndexObjectSourceContext.cxx
index 4e8e35078dd3..7b9468ace7d7 100644
--- a/xmloff/source/text/XMLIndexObjectSourceContext.cxx
+++ b/xmloff/source/text/XMLIndexObjectSourceContext.cxx
@@ -110,7 +110,7 @@ void XMLIndexObjectSourceContext::ProcessAttribute(
     }
 }
 
-void XMLIndexObjectSourceContext::EndElement()
+void XMLIndexObjectSourceContext::endFastElement(sal_Int32 nElement)
 {
     rIndexPropertySet->setPropertyValue("CreateFromStarCalc", css::uno::Any(bUseCalc));
     rIndexPropertySet->setPropertyValue("CreateFromStarChart", css::uno::Any(bUseChart));
@@ -118,7 +118,7 @@ void XMLIndexObjectSourceContext::EndElement()
     rIndexPropertySet->setPropertyValue("CreateFromStarMath", css::uno::Any(bUseMath));
     rIndexPropertySet->setPropertyValue("CreateFromOtherEmbeddedObjects", css::uno::Any(bUseOtherObjects));
 
-    XMLIndexSourceBaseContext::EndElement();
+    XMLIndexSourceBaseContext::endFastElement(nElement);
 }
 
 SvXMLImportContextRef XMLIndexObjectSourceContext::CreateChildContext(
diff --git a/xmloff/source/text/XMLIndexObjectSourceContext.hxx b/xmloff/source/text/XMLIndexObjectSourceContext.hxx
index 0bc9b98fbc4c..6aba67a4e43e 100644
--- a/xmloff/source/text/XMLIndexObjectSourceContext.hxx
+++ b/xmloff/source/text/XMLIndexObjectSourceContext.hxx
@@ -58,7 +58,7 @@ protected:
         enum IndexSourceParamEnum eParam,
         const OUString& rValue) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLIndexSimpleEntryContext.cxx b/xmloff/source/text/XMLIndexSimpleEntryContext.cxx
index c20fca0ee096..51f68b5f54d3 100644
--- a/xmloff/source/text/XMLIndexSimpleEntryContext.cxx
+++ b/xmloff/source/text/XMLIndexSimpleEntryContext.cxx
@@ -91,7 +91,7 @@ void XMLIndexSimpleEntryContext::StartElement(
 
 }
 
-void XMLIndexSimpleEntryContext::EndElement()
+void XMLIndexSimpleEntryContext::endFastElement(sal_Int32 )
 {
     Sequence<PropertyValue> aValues(m_nValues);
 
diff --git a/xmloff/source/text/XMLIndexSimpleEntryContext.hxx b/xmloff/source/text/XMLIndexSimpleEntryContext.hxx
index 3e3ebd10f3f6..85fcd1b1e5ae 100644
--- a/xmloff/source/text/XMLIndexSimpleEntryContext.hxx
+++ b/xmloff/source/text/XMLIndexSimpleEntryContext.hxx
@@ -70,7 +70,7 @@ protected:
         const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
 
     /** call FillPropertyValues and insert into template */
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     /** fill property values for this template entry */
     virtual void FillPropertyValues(
diff --git a/xmloff/source/text/XMLIndexSourceBaseContext.cxx b/xmloff/source/text/XMLIndexSourceBaseContext.cxx
index cdc862c33f4f..98384be3d8e5 100644
--- a/xmloff/source/text/XMLIndexSourceBaseContext.cxx
+++ b/xmloff/source/text/XMLIndexSourceBaseContext.cxx
@@ -206,7 +206,7 @@ void XMLIndexSourceBaseContext::ProcessAttribute(
     }
 }
 
-void XMLIndexSourceBaseContext::EndElement()
+void XMLIndexSourceBaseContext::endFastElement(sal_Int32 )
 {
     rIndexPropertySet->setPropertyValue("IsRelativeTabstops", css::uno::Any(bRelativeTabs));
     rIndexPropertySet->setPropertyValue("CreateFromChapter", css::uno::Any(bChapterIndex));
diff --git a/xmloff/source/text/XMLIndexSourceBaseContext.hxx b/xmloff/source/text/XMLIndexSourceBaseContext.hxx
index c1e6122e6032..d85a684a3786 100644
--- a/xmloff/source/text/XMLIndexSourceBaseContext.hxx
+++ b/xmloff/source/text/XMLIndexSourceBaseContext.hxx
@@ -105,7 +105,7 @@ protected:
         enum IndexSourceParamEnum eParam,
         const OUString& rValue);
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLIndexTOCContext.cxx b/xmloff/source/text/XMLIndexTOCContext.cxx
index d1ee7924b4d0..8eb82b48311f 100644
--- a/xmloff/source/text/XMLIndexTOCContext.cxx
+++ b/xmloff/source/text/XMLIndexTOCContext.cxx
@@ -245,7 +245,7 @@ void XMLIndexTOCContext::StartElement(
 
 }
 
-void XMLIndexTOCContext::EndElement()
+void XMLIndexTOCContext::endFastElement(sal_Int32 )
 {
     // complete import of index by removing the markers (if the index
     // was actually inserted, that is)
diff --git a/xmloff/source/text/XMLIndexTOCContext.hxx b/xmloff/source/text/XMLIndexTOCContext.hxx
index 8e3566c8cf1d..cfff7e115654 100644
--- a/xmloff/source/text/XMLIndexTOCContext.hxx
+++ b/xmloff/source/text/XMLIndexTOCContext.hxx
@@ -78,7 +78,7 @@ protected:
     virtual void StartElement(
         const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLIndexTOCSourceContext.cxx b/xmloff/source/text/XMLIndexTOCSourceContext.cxx
index c508beb3d30f..afc7481bc663 100644
--- a/xmloff/source/text/XMLIndexTOCSourceContext.cxx
+++ b/xmloff/source/text/XMLIndexTOCSourceContext.cxx
@@ -120,7 +120,7 @@ void XMLIndexTOCSourceContext::ProcessAttribute(
     }
 }
 
-void XMLIndexTOCSourceContext::EndElement()
+void XMLIndexTOCSourceContext::endFastElement(sal_Int32 nElement)
 {
     rIndexPropertySet->setPropertyValue("CreateFromMarks", css::uno::Any(bUseMarks));
     rIndexPropertySet->setPropertyValue("CreateFromOutline", css::uno::Any(bUseOutline));
@@ -129,7 +129,7 @@ void XMLIndexTOCSourceContext::EndElement()
     rIndexPropertySet->setPropertyValue("Level", css::uno::Any(static_cast<sal_Int16>(nOutlineLevel)));
 
     // process common attributes
-    XMLIndexSourceBaseContext::EndElement();
+    XMLIndexSourceBaseContext::endFastElement(nElement);
 }
 
 SvXMLImportContextRef XMLIndexTOCSourceContext::CreateChildContext(
diff --git a/xmloff/source/text/XMLIndexTOCSourceContext.hxx b/xmloff/source/text/XMLIndexTOCSourceContext.hxx
index 1f56671c2a14..1a53fedb2ebe 100644
--- a/xmloff/source/text/XMLIndexTOCSourceContext.hxx
+++ b/xmloff/source/text/XMLIndexTOCSourceContext.hxx
@@ -57,7 +57,7 @@ protected:
         enum IndexSourceParamEnum eParam,
         const OUString& rValue) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLIndexTOCStylesContext.cxx b/xmloff/source/text/XMLIndexTOCStylesContext.cxx
index b116f1cc1e5c..3eda66f4b918 100644
--- a/xmloff/source/text/XMLIndexTOCStylesContext.cxx
+++ b/xmloff/source/text/XMLIndexTOCStylesContext.cxx
@@ -82,7 +82,7 @@ void XMLIndexTOCStylesContext::StartElement(
     }
 }
 
-void XMLIndexTOCStylesContext::EndElement()
+void XMLIndexTOCStylesContext::endFastElement(sal_Int32 )
 {
     // if valid...
     if (nOutlineLevel < 0)
diff --git a/xmloff/source/text/XMLIndexTOCStylesContext.hxx b/xmloff/source/text/XMLIndexTOCStylesContext.hxx
index 6f9733c73ff5..edecd5b629af 100644
--- a/xmloff/source/text/XMLIndexTOCStylesContext.hxx
+++ b/xmloff/source/text/XMLIndexTOCStylesContext.hxx
@@ -67,7 +67,7 @@ protected:
     virtual void StartElement(
         const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLIndexTableSourceContext.cxx b/xmloff/source/text/XMLIndexTableSourceContext.cxx
index e6876915232a..4bb7de1b9d30 100644
--- a/xmloff/source/text/XMLIndexTableSourceContext.cxx
+++ b/xmloff/source/text/XMLIndexTableSourceContext.cxx
@@ -111,7 +111,7 @@ void XMLIndexTableSourceContext::ProcessAttribute(
     }
 }
 
-void XMLIndexTableSourceContext::EndElement()
+void XMLIndexTableSourceContext::endFastElement(sal_Int32 nElement)
 {
     rIndexPropertySet->setPropertyValue("CreateFromLabels", css::uno::Any(bUseCaption));
 
@@ -125,7 +125,7 @@ void XMLIndexTableSourceContext::EndElement()
         rIndexPropertySet->setPropertyValue("LabelDisplayType", css::uno::Any(nDisplayFormat));
     }
 
-    XMLIndexSourceBaseContext::EndElement();
+    XMLIndexSourceBaseContext::endFastElement(nElement);
 }
 
 SvXMLImportContextRef XMLIndexTableSourceContext::CreateChildContext(
diff --git a/xmloff/source/text/XMLIndexTableSourceContext.hxx b/xmloff/source/text/XMLIndexTableSourceContext.hxx
index ef40cdecbd36..0d95e6fe8057 100644
--- a/xmloff/source/text/XMLIndexTableSourceContext.hxx
+++ b/xmloff/source/text/XMLIndexTableSourceContext.hxx
@@ -59,7 +59,7 @@ protected:
         enum IndexSourceParamEnum eParam,
         const OUString& rValue) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLIndexTemplateContext.cxx b/xmloff/source/text/XMLIndexTemplateContext.cxx
index c142c66e2d20..5562fdfc5023 100644
--- a/xmloff/source/text/XMLIndexTemplateContext.cxx
+++ b/xmloff/source/text/XMLIndexTemplateContext.cxx
@@ -140,7 +140,7 @@ void XMLIndexTemplateContext::StartElement(
     }
 }
 
-void XMLIndexTemplateContext::EndElement()
+void XMLIndexTemplateContext::endFastElement(sal_Int32 )
 {
     if (!bOutlineLevelOK)
         return;
diff --git a/xmloff/source/text/XMLIndexTemplateContext.hxx b/xmloff/source/text/XMLIndexTemplateContext.hxx
index 58b0775de430..e692edbafbf7 100644
--- a/xmloff/source/text/XMLIndexTemplateContext.hxx
+++ b/xmloff/source/text/XMLIndexTemplateContext.hxx
@@ -119,7 +119,7 @@ protected:
     virtual void StartElement(
         const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLIndexTitleTemplateContext.cxx b/xmloff/source/text/XMLIndexTitleTemplateContext.cxx
index b85714f6f0f6..e11ab205f7eb 100644
--- a/xmloff/source/text/XMLIndexTitleTemplateContext.cxx
+++ b/xmloff/source/text/XMLIndexTitleTemplateContext.cxx
@@ -76,7 +76,7 @@ void XMLIndexTitleTemplateContext::StartElement(
     }
 }
 
-void XMLIndexTitleTemplateContext::EndElement()
+void XMLIndexTitleTemplateContext::endFastElement(sal_Int32 )
 {
     Any aAny;
 
diff --git a/xmloff/source/text/XMLIndexTitleTemplateContext.hxx b/xmloff/source/text/XMLIndexTitleTemplateContext.hxx
index 1ad37fd50d86..234a7e96a6b5 100644
--- a/xmloff/source/text/XMLIndexTitleTemplateContext.hxx
+++ b/xmloff/source/text/XMLIndexTitleTemplateContext.hxx
@@ -65,7 +65,7 @@ protected:
         const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
 
     /** set values */
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     /** pick up title characters */
     virtual void SAL_CALL characters(const OUString& sString) override;
diff --git a/xmloff/source/text/XMLIndexUserSourceContext.cxx b/xmloff/source/text/XMLIndexUserSourceContext.cxx
index e180955340db..3d388c4de498 100644
--- a/xmloff/source/text/XMLIndexUserSourceContext.cxx
+++ b/xmloff/source/text/XMLIndexUserSourceContext.cxx
@@ -124,7 +124,7 @@ void XMLIndexUserSourceContext::ProcessAttribute(
     }
 }
 
-void XMLIndexUserSourceContext::EndElement()
+void XMLIndexUserSourceContext::endFastElement(sal_Int32 nElement)
 {
     rIndexPropertySet->setPropertyValue("CreateFromEmbeddedObjects", css::uno::Any(bUseObjects));
     rIndexPropertySet->setPropertyValue("CreateFromGraphicObjects", css::uno::Any(bUseGraphic));
@@ -139,7 +139,7 @@ void XMLIndexUserSourceContext::EndElement()
         rIndexPropertySet->setPropertyValue("UserIndexName", css::uno::Any(sIndexName));
     }
 
-    XMLIndexSourceBaseContext::EndElement();
+    XMLIndexSourceBaseContext::endFastElement(nElement);
 }
 
 SvXMLImportContextRef XMLIndexUserSourceContext::CreateChildContext(
diff --git a/xmloff/source/text/XMLIndexUserSourceContext.hxx b/xmloff/source/text/XMLIndexUserSourceContext.hxx
index 17581322a536..54d8812008db 100644
--- a/xmloff/source/text/XMLIndexUserSourceContext.hxx
+++ b/xmloff/source/text/XMLIndexUserSourceContext.hxx
@@ -61,7 +61,7 @@ protected:
         enum IndexSourceParamEnum eParam,
         const OUString& rValue) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLSectionImportContext.cxx b/xmloff/source/text/XMLSectionImportContext.cxx
index 95d43553d270..c4ca75ba06d6 100644
--- a/xmloff/source/text/XMLSectionImportContext.cxx
+++ b/xmloff/source/text/XMLSectionImportContext.cxx
@@ -307,7 +307,7 @@ void XMLSectionImportContext::ProcessAttributes(
     }
 }
 
-void XMLSectionImportContext::EndElement()
+void XMLSectionImportContext::endFastElement(sal_Int32 )
 {
     // get rid of last paragraph
     // (unless it's the only paragraph in the section)
diff --git a/xmloff/source/text/XMLSectionImportContext.hxx b/xmloff/source/text/XMLSectionImportContext.hxx
index fb2656b12210..b593237d74af 100644
--- a/xmloff/source/text/XMLSectionImportContext.hxx
+++ b/xmloff/source/text/XMLSectionImportContext.hxx
@@ -72,7 +72,7 @@ private:
     virtual void StartElement(
         const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
diff --git a/xmloff/source/text/XMLTextFrameContext.cxx b/xmloff/source/text/XMLTextFrameContext.cxx
index 5452027a31f4..f9417c264806 100644
--- a/xmloff/source/text/XMLTextFrameContext.cxx
+++ b/xmloff/source/text/XMLTextFrameContext.cxx
@@ -405,7 +405,7 @@ public:
             const css::uno::Reference<css::xml::sax::XAttributeList > & rFrameAttrList,
             bool bMultipleContent = false );
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual void SAL_CALL characters( const OUString& rChars ) override;
 
@@ -1106,7 +1106,7 @@ XMLTextFrameContext_Impl::XMLTextFrameContext_Impl(
     Create();
 }
 
-void XMLTextFrameContext_Impl::EndElement()
+void XMLTextFrameContext_Impl::endFastElement(sal_Int32 )
 {
     if( ( XML_TEXT_FRAME_OBJECT_OLE == nType ||
           XML_TEXT_FRAME_GRAPHIC == nType) &&
@@ -1403,7 +1403,7 @@ XMLTextFrameContext::XMLTextFrameContext(
     }
 }
 
-void XMLTextFrameContext::EndElement()
+void XMLTextFrameContext::endFastElement(sal_Int32 )
 {
     /// solve if multiple image child contexts were imported
     SvXMLImportContextRef const pMultiContext(solveMultipleImages());
diff --git a/xmloff/source/text/XMLTextFrameContext.hxx b/xmloff/source/text/XMLTextFrameContext.hxx
index c37972712028..0989364a6bba 100644
--- a/xmloff/source/text/XMLTextFrameContext.hxx
+++ b/xmloff/source/text/XMLTextFrameContext.hxx
@@ -73,7 +73,7 @@ public:
                 css::xml::sax::XAttributeList > & xAttrList,
             css::text::TextContentAnchorType eDfltAnchorType );
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
                 const OUString& rLocalName,
diff --git a/xmloff/source/text/XMLTextListBlockContext.cxx b/xmloff/source/text/XMLTextListBlockContext.cxx
index 529ef12f0764..3fcdca9d25a9 100644
--- a/xmloff/source/text/XMLTextListBlockContext.cxx
+++ b/xmloff/source/text/XMLTextListBlockContext.cxx
@@ -229,7 +229,7 @@ XMLTextListBlockContext::~XMLTextListBlockContext()
 {
 }
 
-void XMLTextListBlockContext::EndElement()
+void XMLTextListBlockContext::endFastElement(sal_Int32 )
 {
     // Numbering has not to be restarted if it has been restarted within
     // a child list.
diff --git a/xmloff/source/text/XMLTextListBlockContext.hxx b/xmloff/source/text/XMLTextListBlockContext.hxx
index f77a2d4ebdfd..c5c0182997c1 100644
--- a/xmloff/source/text/XMLTextListBlockContext.hxx
+++ b/xmloff/source/text/XMLTextListBlockContext.hxx
@@ -58,7 +58,7 @@ public:
                 const bool bRestartNumberingAtSubList = false );
     virtual ~XMLTextListBlockContext() override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
                 const OUString& rLocalName,
diff --git a/xmloff/source/text/XMLTextListItemContext.cxx b/xmloff/source/text/XMLTextListItemContext.cxx
index 5fe4a195db0a..7f7886648e16 100644
--- a/xmloff/source/text/XMLTextListItemContext.cxx
+++ b/xmloff/source/text/XMLTextListItemContext.cxx
@@ -124,7 +124,7 @@ XMLTextListItemContext::~XMLTextListItemContext()
 {
 }
 
-void XMLTextListItemContext::EndElement()
+void XMLTextListItemContext::endFastElement(sal_Int32 )
 {
     // finish current list item
     rTxtImport.GetTextListHelper().SetListItem( nullptr );
diff --git a/xmloff/source/text/XMLTextListItemContext.hxx b/xmloff/source/text/XMLTextListItemContext.hxx
index 2507480c961d..09c1b7f3727a 100644
--- a/xmloff/source/text/XMLTextListItemContext.hxx
+++ b/xmloff/source/text/XMLTextListItemContext.hxx
@@ -49,7 +49,7 @@ public:
             const bool bIsHeader );
     virtual ~XMLTextListItemContext() override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
                  const OUString& rLocalName,
diff --git a/xmloff/source/text/XMLTextMarkImportContext.cxx b/xmloff/source/text/XMLTextMarkImportContext.cxx
index 55d564a18737..0c5011ca13f5 100644
--- a/xmloff/source/text/XMLTextMarkImportContext.cxx
+++ b/xmloff/source/text/XMLTextMarkImportContext.cxx
@@ -248,7 +248,7 @@ static auto PopFieldmark(XMLTextImportHelper & rHelper) -> void
     }
 }
 
-void XMLTextMarkImportContext::EndElement()
+void XMLTextMarkImportContext::endFastElement(sal_Int32 )
 {
     static const char sAPI_bookmark[] = "com.sun.star.text.Bookmark";
 
diff --git a/xmloff/source/text/XMLTextMarkImportContext.hxx b/xmloff/source/text/XMLTextMarkImportContext.hxx
index 347273ef162a..6dd627691435 100644
--- a/xmloff/source/text/XMLTextMarkImportContext.hxx
+++ b/xmloff/source/text/XMLTextMarkImportContext.hxx
@@ -88,7 +88,7 @@ protected:
 
     virtual void StartElement(
         const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
                                                     const OUString& rLocalName,
diff --git a/xmloff/source/text/txtfldi.cxx b/xmloff/source/text/txtfldi.cxx
index a6e95478e7bd..0caa7d9551cc 100644
--- a/xmloff/source/text/txtfldi.cxx
+++ b/xmloff/source/text/txtfldi.cxx
@@ -156,7 +156,7 @@ OUString const & XMLTextFieldImportContext::GetContent()
     return sContent;
 }
 
-void XMLTextFieldImportContext::EndElement()
+void XMLTextFieldImportContext::endFastElement(sal_Int32 )
 {
     DBG_ASSERT(!GetServiceName().isEmpty(), "no service name for element!");
     if (bValid)
@@ -2852,7 +2852,7 @@ void XMLDdeFieldImportContext::ProcessAttribute(
     }
 }
 
-void XMLDdeFieldImportContext::EndElement()
+void XMLDdeFieldImportContext::endFastElement(sal_Int32 )
 {
     if (!bValid)
         return;
@@ -3353,7 +3353,7 @@ SvXMLImportContextRef XMLAnnotationImportContext::CreateChildContext(
     return pContext;
 }
 
-void XMLAnnotationImportContext::EndElement()
+void XMLAnnotationImportContext::endFastElement(sal_Int32 )
 {
     DBG_ASSERT(!GetServiceName().isEmpty(), "no service name for element!");
     if( mxCursor.is() )
diff --git a/xmloff/source/text/txtparai.cxx b/xmloff/source/text/txtparai.cxx
index 614040d81af7..0ba8d3f36230 100644
--- a/xmloff/source/text/txtparai.cxx
+++ b/xmloff/source/text/txtparai.cxx
@@ -608,7 +608,7 @@ public:
             XMLHints_Impl& rHints,
             bool& rIgnLeadSpace );
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
             sal_uInt16 nPrefix, const OUString& rLocalName,
@@ -702,7 +702,7 @@ XMLImpRubyContext_Impl::XMLImpRubyContext_Impl(
     }
 }
 
-void XMLImpRubyContext_Impl::EndElement()
+void XMLImpRubyContext_Impl::endFastElement(sal_Int32 )
 {
     const rtl::Reference < XMLTextImportHelper > xTextImport(
         GetImport().GetTextImport());
@@ -770,7 +770,7 @@ public:
     virtual void StartElement(
             const Reference<xml::sax::XAttributeList> & i_xAttrList) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext(
             sal_uInt16 i_nPrefix, const OUString& i_rLocalName,
@@ -817,7 +817,7 @@ void XMLMetaImportContextBase::StartElement(
     }
 }
 
-void XMLMetaImportContextBase::EndElement()
+void XMLMetaImportContextBase::endFastElement(sal_Int32 )
 {
     SAL_WARN_IF(!m_xStart.is(), "xmloff.text", "no mxStart?");
     if (!m_xStart.is()) return;
@@ -1948,7 +1948,7 @@ XMLParaContext::XMLParaContext(
         sStyleName = aCondStyleName;
 }
 
-void XMLParaContext::EndElement()
+void XMLParaContext::endFastElement(sal_Int32 )
 {
     rtl::Reference < XMLTextImportHelper > xTxtImport(
         GetImport().GetTextImport());
@@ -2334,7 +2334,7 @@ XMLNumberedParaContext::XMLNumberedParaContext(
     i_rImport.GetTextImport()->GetTextListHelper().PushListContext( this );
 }
 
-void XMLNumberedParaContext::EndElement()
+void XMLNumberedParaContext::endFastElement(sal_Int32 )
 {
     if (!m_ListId.isEmpty()) {
         GetImport().GetTextImport()->PopListContext();
diff --git a/xmloff/source/text/txtparai.hxx b/xmloff/source/text/txtparai.hxx
index feaa5bbb45eb..72f68c06ae4f 100644
--- a/xmloff/source/text/txtparai.hxx
+++ b/xmloff/source/text/txtparai.hxx
@@ -65,7 +65,7 @@ public:
             const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList,
             bool bHeading );
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
             const OUString& rLocalName,
@@ -94,7 +94,7 @@ public:
             const OUString& i_rLocalName,
             const css::uno::Reference< css::xml::sax::XAttributeList > & i_xAttrList );
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 i_nPrefix,
             const OUString& i_rLocalName,
diff --git a/xmloff/source/text/txtvfldi.cxx b/xmloff/source/text/txtvfldi.cxx
index 76ac17fa6f33..cc7313515786 100644
--- a/xmloff/source/text/txtvfldi.cxx
+++ b/xmloff/source/text/txtvfldi.cxx
@@ -261,7 +261,7 @@ XMLSetVarFieldImportContext::XMLSetVarFieldImportContext(
 {
 }
 
-void XMLSetVarFieldImportContext::EndElement()
+void XMLSetVarFieldImportContext::endFastElement(sal_Int32 )
 {
     // should we call PrepareField on the field, or rather on it's master?
     // currently: call on field (just like superclass)
@@ -976,7 +976,7 @@ void XMLDatabaseDisplayImportContext::ProcessAttribute(
     bValid = m_bTableOK && m_bDatabaseOK && bColumnOK;
 }
 
-void XMLDatabaseDisplayImportContext::EndElement()
+void XMLDatabaseDisplayImportContext::endFastElement(sal_Int32 )
 {
     // we have an EndElement of our own, because database fields need
     // to be attached to a field master before they can be inserted into
diff --git a/xmloff/source/xforms/XFormsInstanceContext.cxx b/xmloff/source/xforms/XFormsInstanceContext.cxx
index d7b7f59d5c9e..ebd5d2824269 100644
--- a/xmloff/source/xforms/XFormsInstanceContext.cxx
+++ b/xmloff/source/xforms/XFormsInstanceContext.cxx
@@ -92,7 +92,7 @@ SvXMLImportContextRef XFormsInstanceContext::CreateChildContext(
 
 }
 
-void XFormsInstanceContext::EndElement()
+void XFormsInstanceContext::endFastElement(sal_Int32 )
 {
     Sequence<PropertyValue> aSequence( 3 );
     PropertyValue* pSequence = aSequence.getArray();
diff --git a/xmloff/source/xforms/XFormsInstanceContext.hxx b/xmloff/source/xforms/XFormsInstanceContext.hxx
index 46c443b5b910..de7d304858c8 100644
--- a/xmloff/source/xforms/XFormsInstanceContext.hxx
+++ b/xmloff/source/xforms/XFormsInstanceContext.hxx
@@ -57,7 +57,7 @@ public:
         const OUString& rLocalName,
         const css::uno::Reference<css::xml::sax::XAttributeList >& xAttrList ) override;
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
 protected:
     virtual void HandleAttribute(
diff --git a/xmloff/source/xforms/XFormsModelContext.cxx b/xmloff/source/xforms/XFormsModelContext.cxx
index ae2fe5688c41..ae43be1328ff 100644
--- a/xmloff/source/xforms/XFormsModelContext.cxx
+++ b/xmloff/source/xforms/XFormsModelContext.cxx
@@ -121,7 +121,7 @@ SvXMLImportContext* XFormsModelContext::HandleChild(
     return pContext;
 }
 
-void XFormsModelContext::EndElement()
+void XFormsModelContext::endFastElement(sal_Int32 )
 {
     // update before putting model into document
     Reference<XUpdatable> xUpdate( mxModel, UNO_QUERY );
diff --git a/xmloff/source/xforms/XFormsModelContext.hxx b/xmloff/source/xforms/XFormsModelContext.hxx
index ff71c0795690..f188fac8589e 100644
--- a/xmloff/source/xforms/XFormsModelContext.hxx
+++ b/xmloff/source/xforms/XFormsModelContext.hxx
@@ -44,7 +44,7 @@ public:
 
     // implement SvXMLImportContext & TokenContext methods:
 
-    virtual void EndElement() override;
+    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
 protected:
     virtual void HandleAttribute(


More information about the Libreoffice-commits mailing list