sw/source/writerfilter/dmapper/BorderHandler.cxx            |    2 
 sw/source/writerfilter/dmapper/BorderHandler.hxx            |    2 
 sw/source/writerfilter/dmapper/CellColorHandler.cxx         |    2 
 sw/source/writerfilter/dmapper/CellColorHandler.hxx         |    2 
 sw/source/writerfilter/dmapper/CellMarginHandler.cxx        |    2 
 sw/source/writerfilter/dmapper/CellMarginHandler.hxx        |    2 
 sw/source/writerfilter/dmapper/DocumentProtection.cxx       |    2 
 sw/source/writerfilter/dmapper/DocumentProtection.hxx       |    2 
 sw/source/writerfilter/dmapper/DomainMapper.cxx             |    4 -
 sw/source/writerfilter/dmapper/DomainMapper.hxx             |    2 
 sw/source/writerfilter/dmapper/DomainMapperTableManager.cxx |    2 
 sw/source/writerfilter/dmapper/FFDataHandler.cxx            |    2 
 sw/source/writerfilter/dmapper/FFDataHandler.hxx            |    2 
 sw/source/writerfilter/dmapper/FontTable.cxx                |    6 +-
 sw/source/writerfilter/dmapper/FontTable.hxx                |    4 -
 sw/source/writerfilter/dmapper/GraphicHelpers.cxx           |    6 +-
 sw/source/writerfilter/dmapper/GraphicHelpers.hxx           |    6 +-
 sw/source/writerfilter/dmapper/GraphicImport.cxx            |    2 
 sw/source/writerfilter/dmapper/GraphicImport.hxx            |    2 
 sw/source/writerfilter/dmapper/LatentStyleHandler.cxx       |    2 
 sw/source/writerfilter/dmapper/LatentStyleHandler.hxx       |    2 
 sw/source/writerfilter/dmapper/LoggedResources.cxx          |    2 
 sw/source/writerfilter/dmapper/LoggedResources.hxx          |    4 -
 sw/source/writerfilter/dmapper/MeasureHandler.cxx           |    2 
 sw/source/writerfilter/dmapper/MeasureHandler.hxx           |    2 
 sw/source/writerfilter/dmapper/NumberingManager.cxx         |    5 +-
 sw/source/writerfilter/dmapper/NumberingManager.hxx         |    2 
 sw/source/writerfilter/dmapper/OLEHandler.cxx               |    2 
 sw/source/writerfilter/dmapper/OLEHandler.hxx               |    2 
 sw/source/writerfilter/dmapper/PageBordersHandler.cxx       |    2 
 sw/source/writerfilter/dmapper/PageBordersHandler.hxx       |    2 
 sw/source/writerfilter/dmapper/SectionColumnHandler.cxx     |    2 
 sw/source/writerfilter/dmapper/SectionColumnHandler.hxx     |    2 
 sw/source/writerfilter/dmapper/SettingsTable.cxx            |    4 -
 sw/source/writerfilter/dmapper/SettingsTable.hxx            |    2 
 sw/source/writerfilter/dmapper/SmartTagHandler.cxx          |    2 
 sw/source/writerfilter/dmapper/SmartTagHandler.hxx          |    2 
 sw/source/writerfilter/dmapper/StyleSheetTable.cxx          |    4 -
 sw/source/writerfilter/dmapper/StyleSheetTable.hxx          |    2 
 sw/source/writerfilter/dmapper/TDefTableHandler.cxx         |    2 
 sw/source/writerfilter/dmapper/TDefTableHandler.hxx         |    2 
 sw/source/writerfilter/dmapper/TableManager.cxx             |    2 
 sw/source/writerfilter/dmapper/TablePositionHandler.cxx     |    2 
 sw/source/writerfilter/dmapper/TablePositionHandler.hxx     |    2 
 sw/source/writerfilter/dmapper/TablePropertiesHandler.cxx   |    2 
 sw/source/writerfilter/dmapper/TblStylePrHandler.cxx        |    2 
 sw/source/writerfilter/dmapper/TblStylePrHandler.hxx        |    2 
 sw/source/writerfilter/dmapper/TextEffectsHandler.cxx       |    2 
 sw/source/writerfilter/dmapper/TextEffectsHandler.hxx       |    2 
 sw/source/writerfilter/dmapper/ThemeColorHandler.hxx        |    2 
 sw/source/writerfilter/dmapper/TrackChangesHandler.cxx      |    2 
 sw/source/writerfilter/dmapper/TrackChangesHandler.hxx      |    2 
 sw/source/writerfilter/dmapper/WrapPolygonHandler.cxx       |    2 
 sw/source/writerfilter/dmapper/WrapPolygonHandler.hxx       |    2 
 sw/source/writerfilter/dmapper/WriteProtection.cxx          |    2 
 sw/source/writerfilter/dmapper/WriteProtection.hxx          |    2 
 sw/source/writerfilter/inc/dmapper/resourcemodel.hxx        |   10 ++--
 sw/source/writerfilter/ooxml/Handler.cxx                    |   24 +++++------
 sw/source/writerfilter/ooxml/Handler.hxx                    |   24 +++++------
 sw/source/writerfilter/ooxml/OOXMLPropertySet.cxx           |   26 +++---------
 sw/source/writerfilter/ooxml/OOXMLPropertySet.hxx           |   16 +++----
 sw/source/writerfilter/ooxml/OOXMLStreamImpl.hxx            |    4 -
 sw/source/writerfilter/rtftok/rtfsprm.cxx                   |    2 
 sw/source/writerfilter/rtftok/rtfsprm.hxx                   |    2 
 sw/source/writerfilter/rtftok/rtfvalue.cxx                  |    4 -
 sw/source/writerfilter/rtftok/rtfvalue.hxx                  |    4 -
 66 files changed, 120 insertions(+), 133 deletions(-)

New commits:
commit d255a8306e7a26476fe11dbdcf38f6cb5665a48b
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Wed Aug 21 15:02:15 2024 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Thu Aug 22 08:15:43 2024 +0200

    tdf#158556 return 'const Value*' from Sprm::getValue
    
    instead of cloning a fresh object instance, which is not necessary
    most of the time
    
    Change-Id: I3ee1f5952e01a7c6207213522cac9cabb15246d0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172211
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sw/source/writerfilter/dmapper/BorderHandler.cxx 
b/sw/source/writerfilter/dmapper/BorderHandler.cxx
index 0453a907c7f9..6c90a06260cb 100644
--- a/sw/source/writerfilter/dmapper/BorderHandler.cxx
+++ b/sw/source/writerfilter/dmapper/BorderHandler.cxx
@@ -50,7 +50,7 @@ BorderHandler::~BorderHandler()
 {
 }
 
-void BorderHandler::lcl_attribute(Id rName, Value & rVal)
+void BorderHandler::lcl_attribute(Id rName, const Value & rVal)
 {
     sal_Int32 nIntValue = rVal.getInt();
     switch( rName )
diff --git a/sw/source/writerfilter/dmapper/BorderHandler.hxx 
b/sw/source/writerfilter/dmapper/BorderHandler.hxx
index 9a523bffc576..2922a2970f49 100644
--- a/sw/source/writerfilter/dmapper/BorderHandler.hxx
+++ b/sw/source/writerfilter/dmapper/BorderHandler.hxx
@@ -63,7 +63,7 @@ private:
     void appendGrabBag(const OUString& aKey, const OUString& aValue);
 
     // Properties
-    virtual void lcl_attribute(Id Name, Value & val) override;
+    virtual void lcl_attribute(Id Name, const Value & val) override;
     virtual void lcl_sprm(Sprm & sprm) override;
 
 public:
diff --git a/sw/source/writerfilter/dmapper/CellColorHandler.cxx 
b/sw/source/writerfilter/dmapper/CellColorHandler.cxx
index 33817df83a82..15fcdf215111 100644
--- a/sw/source/writerfilter/dmapper/CellColorHandler.cxx
+++ b/sw/source/writerfilter/dmapper/CellColorHandler.cxx
@@ -96,7 +96,7 @@ static uno::Any lcl_ConvertShd(sal_Int32 nIntValue)
     return uno::Any(aRet);
 }
 
-void CellColorHandler::lcl_attribute(Id rName, Value & rVal)
+void CellColorHandler::lcl_attribute(Id rName, const Value & rVal)
 {
     sal_Int32 nIntValue = rVal.getInt();
     switch( rName )
diff --git a/sw/source/writerfilter/dmapper/CellColorHandler.hxx 
b/sw/source/writerfilter/dmapper/CellColorHandler.hxx
index 418f8e1f93e4..a0fd290a4407 100644
--- a/sw/source/writerfilter/dmapper/CellColorHandler.hxx
+++ b/sw/source/writerfilter/dmapper/CellColorHandler.hxx
@@ -53,7 +53,7 @@ private:
     std::vector<css::beans::PropertyValue> m_aInteropGrabBag;
 
     // Properties
-    virtual void lcl_attribute(Id Name, Value & val) override;
+    virtual void lcl_attribute(Id Name, const Value & val) override;
     virtual void lcl_sprm(Sprm & sprm) override;
 
     void createGrabBag(const OUString& aName, const css::uno::Any& rValue);
diff --git a/sw/source/writerfilter/dmapper/CellMarginHandler.cxx 
b/sw/source/writerfilter/dmapper/CellMarginHandler.cxx
index 4f4b3011663a..080d7f324db8 100644
--- a/sw/source/writerfilter/dmapper/CellMarginHandler.cxx
+++ b/sw/source/writerfilter/dmapper/CellMarginHandler.cxx
@@ -48,7 +48,7 @@ CellMarginHandler::~CellMarginHandler()
 {
 }
 
-void CellMarginHandler::lcl_attribute(Id rName, Value & rVal)
+void CellMarginHandler::lcl_attribute(Id rName, const Value & rVal)
 {
     sal_Int32 nIntValue = rVal.getInt();
     switch( rName )
diff --git a/sw/source/writerfilter/dmapper/CellMarginHandler.hxx 
b/sw/source/writerfilter/dmapper/CellMarginHandler.hxx
index 8dcbf2dc5245..9e85de325ab7 100644
--- a/sw/source/writerfilter/dmapper/CellMarginHandler.hxx
+++ b/sw/source/writerfilter/dmapper/CellMarginHandler.hxx
@@ -36,7 +36,7 @@ private:
     std::vector<css::beans::PropertyValue> m_aInteropGrabBag;
 
     // Properties
-    virtual void lcl_attribute(Id Name, Value & val) override;
+    virtual void lcl_attribute(Id Name, const Value & val) override;
     virtual void lcl_sprm(Sprm & sprm) override;
 
     void createGrabBag(const OUString& aName);
diff --git a/sw/source/writerfilter/dmapper/DocumentProtection.cxx 
b/sw/source/writerfilter/dmapper/DocumentProtection.cxx
index f5ce6a4872ca..33f439405ad8 100644
--- a/sw/source/writerfilter/dmapper/DocumentProtection.cxx
+++ b/sw/source/writerfilter/dmapper/DocumentProtection.cxx
@@ -45,7 +45,7 @@ DocumentProtection::DocumentProtection()
 
 DocumentProtection::~DocumentProtection() {}
 
-void DocumentProtection::lcl_attribute(Id nName, Value& val)
+void DocumentProtection::lcl_attribute(Id nName, const Value& val)
 {
     int nIntValue = val.getInt();
     OUString sStringValue = val.getString();
diff --git a/sw/source/writerfilter/dmapper/DocumentProtection.hxx 
b/sw/source/writerfilter/dmapper/DocumentProtection.hxx
index 2ec0f3f21c41..0460e62cd7db 100644
--- a/sw/source/writerfilter/dmapper/DocumentProtection.hxx
+++ b/sw/source/writerfilter/dmapper/DocumentProtection.hxx
@@ -66,7 +66,7 @@ private:
     OUString m_sHash;
     OUString m_sSalt;
 
-    virtual void lcl_attribute(Id Name, Value& val) override;
+    virtual void lcl_attribute(Id Name, const Value& val) override;
     virtual void lcl_sprm(Sprm& sprm) override;
 
     bool enabled() const { return !isNone(); }
diff --git a/sw/source/writerfilter/dmapper/DomainMapper.cxx 
b/sw/source/writerfilter/dmapper/DomainMapper.cxx
index 16075184cb45..304519470097 100644
--- a/sw/source/writerfilter/dmapper/DomainMapper.cxx
+++ b/sw/source/writerfilter/dmapper/DomainMapper.cxx
@@ -280,7 +280,7 @@ DomainMapper::~DomainMapper()
 #endif
 }
 
-void DomainMapper::lcl_attribute(Id nName, Value & val)
+void DomainMapper::lcl_attribute(Id nName, const Value & val)
 {
     if (m_pImpl->hasTableManager() && 
m_pImpl->getTableManager().attribute(nName, val))
         return;
@@ -1492,7 +1492,7 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, const 
PropertyMapPtr& rContext )
     sal_uInt32 nSprmId = rSprm.getId();
     //needed for page properties
     SectionPropertyMap * pSectionContext = m_pImpl->GetSectionContext();
-    Value::Pointer_t pValue = rSprm.getValue();
+    const Value* pValue = rSprm.getValue();
     sal_Int32 nIntValue = pValue->getInt();
     const OUString sStringValue = pValue->getString();
 
diff --git a/sw/source/writerfilter/dmapper/DomainMapper.hxx 
b/sw/source/writerfilter/dmapper/DomainMapper.hxx
index 349029657b68..a431a8d876d4 100644
--- a/sw/source/writerfilter/dmapper/DomainMapper.hxx
+++ b/sw/source/writerfilter/dmapper/DomainMapper.hxx
@@ -175,7 +175,7 @@ private:
     virtual void lcl_checkId(const sal_Int32 nId) override;
 
     // Properties
-    virtual void lcl_attribute(Id Name, Value & val) override;
+    virtual void lcl_attribute(Id Name, const Value & val) override;
     virtual void lcl_sprm(Sprm & sprm) override;
 
     // Table
diff --git a/sw/source/writerfilter/dmapper/DomainMapperTableManager.cxx 
b/sw/source/writerfilter/dmapper/DomainMapperTableManager.cxx
index 24e85c325bd9..72e37c4da860 100644
--- a/sw/source/writerfilter/dmapper/DomainMapperTableManager.cxx
+++ b/sw/source/writerfilter/dmapper/DomainMapperTableManager.cxx
@@ -121,7 +121,7 @@ bool DomainMapperTableManager::sprm(Sprm & rSprm)
     {
         bRet = true;
         sal_uInt32 nSprmId = rSprm.getId();
-        Value::Pointer_t pValue = rSprm.getValue();
+        const Value* pValue = rSprm.getValue();
         sal_Int32 nIntValue = (pValue ? pValue->getInt() : 0);
         switch ( nSprmId )
         {
diff --git a/sw/source/writerfilter/dmapper/FFDataHandler.cxx 
b/sw/source/writerfilter/dmapper/FFDataHandler.cxx
index 507327cf8333..00cdd3cf44dd 100644
--- a/sw/source/writerfilter/dmapper/FFDataHandler.cxx
+++ b/sw/source/writerfilter/dmapper/FFDataHandler.cxx
@@ -163,7 +163,7 @@ void FFDataHandler::resolveSprm(Sprm & r_Sprm)
         pProperties->resolve(*this);
 }
 
-void FFDataHandler::lcl_attribute(Id name, Value & val)
+void FFDataHandler::lcl_attribute(Id name, const Value & val)
 {
     switch (name)
     {
diff --git a/sw/source/writerfilter/dmapper/FFDataHandler.hxx 
b/sw/source/writerfilter/dmapper/FFDataHandler.hxx
index f8a88f5c9d6b..f3035bed9ef9 100644
--- a/sw/source/writerfilter/dmapper/FFDataHandler.hxx
+++ b/sw/source/writerfilter/dmapper/FFDataHandler.hxx
@@ -92,7 +92,7 @@ private:
     void lcl_sprm(Sprm& r_sprm) override;
 
     // attribute
-    void lcl_attribute(Id name, Value& val) override;
+    void lcl_attribute(Id name, const Value& val) override;
 };
 }
 
diff --git a/sw/source/writerfilter/dmapper/FontTable.cxx 
b/sw/source/writerfilter/dmapper/FontTable.cxx
index ebc7a7253247..d0f65bc8c742 100644
--- a/sw/source/writerfilter/dmapper/FontTable.cxx
+++ b/sw/source/writerfilter/dmapper/FontTable.cxx
@@ -56,7 +56,7 @@ FontTable::~FontTable()
 {
 }
 
-void FontTable::lcl_attribute(Id Name, Value & val)
+void FontTable::lcl_attribute(Id Name, const Value & val)
 {
     SAL_WARN_IF( !m_pImpl->pCurrentEntry, "writerfilter.dmapper", "current 
entry has to be set here" );
     if(!m_pImpl->pCurrentEntry)
@@ -137,7 +137,7 @@ void FontTable::lcl_sprm(Sprm& rSprm)
             break;
         case NS_ooxml::LN_CT_Font_family:
         {
-            Value::Pointer_t pValue = rSprm.getValue();
+            const Value* pValue = rSprm.getValue();
             sal_Int32 nIntValue = pValue ? pValue->getInt() : 0;
             // Map OOXML's ST_FontFamily to UNO's awt::FontFamily.
             switch (nIntValue)
@@ -310,7 +310,7 @@ EmbeddedFontHandler::~EmbeddedFontHandler()
     m_inputStream->closeInput();
 }
 
-void EmbeddedFontHandler::lcl_attribute( Id name, Value& val )
+void EmbeddedFontHandler::lcl_attribute( Id name, const Value& val )
 {
     switch( name )
     {
diff --git a/sw/source/writerfilter/dmapper/FontTable.hxx 
b/sw/source/writerfilter/dmapper/FontTable.hxx
index 99c23a00cb36..476ef98636f0 100644
--- a/sw/source/writerfilter/dmapper/FontTable.hxx
+++ b/sw/source/writerfilter/dmapper/FontTable.hxx
@@ -62,7 +62,7 @@ class FontTable : public LoggedProperties, public LoggedTable
 
  private:
     // Properties
-    virtual void lcl_attribute(Id Name, Value & val) override;
+    virtual void lcl_attribute(Id Name, const Value & val) override;
     virtual void lcl_sprm(Sprm & sprm) override;
     void resolveSprm(Sprm & r_sprm);
 
@@ -96,7 +96,7 @@ public:
     EmbeddedFontHandler(FontTable& rFontTable, OUString fontName, 
std::u16string_view style);
     virtual ~EmbeddedFontHandler() override;
 private:
-    virtual void lcl_attribute( Id name, Value& val ) override;
+    virtual void lcl_attribute( Id name, const Value& val ) override;
     virtual void lcl_sprm( Sprm& rSprm ) override;
     FontTable& m_fontTable;
     OUString m_fontName;
diff --git a/sw/source/writerfilter/dmapper/GraphicHelpers.cxx 
b/sw/source/writerfilter/dmapper/GraphicHelpers.cxx
index e7cb6d56f3d2..179d0937b608 100644
--- a/sw/source/writerfilter/dmapper/GraphicHelpers.cxx
+++ b/sw/source/writerfilter/dmapper/GraphicHelpers.cxx
@@ -54,7 +54,7 @@ PositionHandler::~PositionHandler( )
 {
 }
 
-void PositionHandler::lcl_attribute( Id aName, Value& rVal )
+void PositionHandler::lcl_attribute( Id aName, const Value& rVal )
 {
     sal_Int32 nIntValue = rVal.getInt( );
     switch ( aName )
@@ -214,7 +214,7 @@ WrapHandler::~WrapHandler( )
 {
 }
 
-void WrapHandler::lcl_attribute( Id aName, Value& rVal )
+void WrapHandler::lcl_attribute( Id aName, const Value& rVal )
 {
     switch ( aName )
     {
@@ -390,7 +390,7 @@ ExtentHandler::~ExtentHandler()
 {
 }
 
-void ExtentHandler::attribute(Id nName, Value & rValue)
+void ExtentHandler::attribute(Id nName, const Value & rValue)
 {
     sal_Int32 nIntValue = rValue.getInt();
     switch (nName)
diff --git a/sw/source/writerfilter/dmapper/GraphicHelpers.hxx 
b/sw/source/writerfilter/dmapper/GraphicHelpers.hxx
index 21eb65f88402..184a480ad8ca 100644
--- a/sw/source/writerfilter/dmapper/GraphicHelpers.hxx
+++ b/sw/source/writerfilter/dmapper/GraphicHelpers.hxx
@@ -38,7 +38,7 @@ public:
     bool GetPageToggle() const { return m_bPageToggle; }
 
 private:
-    virtual void lcl_attribute(Id aName, Value& rVal) override;
+    virtual void lcl_attribute(Id aName, const Value& rVal) override;
     virtual void lcl_sprm(Sprm& rSprm) override;
     sal_Int16 m_nOrient;
     sal_Int16 m_nRelation;
@@ -57,7 +57,7 @@ public:
     css::text::WrapTextMode getWrapMode() const;
 
 private:
-    virtual void lcl_attribute(Id aName, Value& rVal) override;
+    virtual void lcl_attribute(Id aName, const Value& rVal) override;
     virtual void lcl_sprm(Sprm& rSprm) override;
 
     sal_Int32 m_nType;
@@ -73,7 +73,7 @@ public:
     explicit ExtentHandler();
     virtual ~ExtentHandler() override;
 
-    virtual void attribute(Id nName, Value& rValue) override;
+    virtual void attribute(Id nName, const Value& rValue) override;
     virtual void sprm(Sprm& rSprm) override;
     css::awt::Size getExtent() const { return m_Extent; }
 };
diff --git a/sw/source/writerfilter/dmapper/GraphicImport.cxx 
b/sw/source/writerfilter/dmapper/GraphicImport.cxx
index 2ba0799cbcd2..ff08d87b0428 100644
--- a/sw/source/writerfilter/dmapper/GraphicImport.cxx
+++ b/sw/source/writerfilter/dmapper/GraphicImport.cxx
@@ -638,7 +638,7 @@ void 
GraphicImport::lcl_expandRectangleByEffectExtent(awt::Point& rLeftTop, awt:
     rSize.Height += nEffectExtent;
 }
 
-void GraphicImport::lcl_attribute(Id nName, Value& rValue)
+void GraphicImport::lcl_attribute(Id nName, const Value& rValue)
 {
     sal_Int32 nIntValue = rValue.getInt();
     switch( nName )
diff --git a/sw/source/writerfilter/dmapper/GraphicImport.hxx 
b/sw/source/writerfilter/dmapper/GraphicImport.hxx
index 2ae7b83dd08a..c29f06a99a6f 100644
--- a/sw/source/writerfilter/dmapper/GraphicImport.hxx
+++ b/sw/source/writerfilter/dmapper/GraphicImport.hxx
@@ -105,7 +105,7 @@ public:
 
  private:
     // Properties
-    virtual void lcl_attribute(Id Name, Value & val) override;
+    virtual void lcl_attribute(Id Name, const Value & val) override;
     virtual void lcl_sprm(Sprm & sprm) override;
 
     // Table
diff --git a/sw/source/writerfilter/dmapper/LatentStyleHandler.cxx 
b/sw/source/writerfilter/dmapper/LatentStyleHandler.cxx
index bc381d21fe3e..0f8b57c0c71e 100644
--- a/sw/source/writerfilter/dmapper/LatentStyleHandler.cxx
+++ b/sw/source/writerfilter/dmapper/LatentStyleHandler.cxx
@@ -21,7 +21,7 @@ LatentStyleHandler::LatentStyleHandler()
 
 LatentStyleHandler::~LatentStyleHandler() = default;
 
-void LatentStyleHandler::lcl_attribute(Id nId, Value& rVal)
+void LatentStyleHandler::lcl_attribute(Id nId, const Value& rVal)
 {
     beans::PropertyValue aValue;
     bool bFound = true;
diff --git a/sw/source/writerfilter/dmapper/LatentStyleHandler.hxx 
b/sw/source/writerfilter/dmapper/LatentStyleHandler.hxx
index 52a4d9e7c318..9e613a1bb0ff 100644
--- a/sw/source/writerfilter/dmapper/LatentStyleHandler.hxx
+++ b/sw/source/writerfilter/dmapper/LatentStyleHandler.hxx
@@ -20,7 +20,7 @@ class LatentStyleHandler : public LoggedProperties
     std::vector<css::beans::PropertyValue> m_aAttributes;
 
     // Properties
-    void lcl_attribute(Id nId, Value& rVal) override;
+    void lcl_attribute(Id nId, const Value& rVal) override;
     void lcl_sprm(Sprm& sprm) override;
 
 public:
diff --git a/sw/source/writerfilter/dmapper/LoggedResources.cxx 
b/sw/source/writerfilter/dmapper/LoggedResources.cxx
index 05ebcd057532..04b5206ed8e7 100644
--- a/sw/source/writerfilter/dmapper/LoggedResources.cxx
+++ b/sw/source/writerfilter/dmapper/LoggedResources.cxx
@@ -342,7 +342,7 @@ LoggedProperties::LoggedProperties(
 
 LoggedProperties::~LoggedProperties() {}
 
-void LoggedProperties::attribute(Id name, Value& val)
+void LoggedProperties::attribute(Id name, const Value& val)
 {
 #ifdef DBG_UTIL
     mHelper.startElement("attribute");
diff --git a/sw/source/writerfilter/dmapper/LoggedResources.hxx 
b/sw/source/writerfilter/dmapper/LoggedResources.hxx
index c0927c9130c4..862825c5f8b5 100644
--- a/sw/source/writerfilter/dmapper/LoggedResources.hxx
+++ b/sw/source/writerfilter/dmapper/LoggedResources.hxx
@@ -113,11 +113,11 @@ public:
     explicit LoggedProperties(const std::string& sPrefix);
     virtual ~LoggedProperties() override;
 
-    void attribute(Id name, Value& val) override;
+    void attribute(Id name, const Value& val) override;
     void sprm(Sprm& sprm) override;
 
 protected:
-    virtual void lcl_attribute(Id name, Value& val) = 0;
+    virtual void lcl_attribute(Id name, const Value& val) = 0;
     virtual void lcl_sprm(Sprm& sprm) = 0;
 
 private:
diff --git a/sw/source/writerfilter/dmapper/MeasureHandler.cxx 
b/sw/source/writerfilter/dmapper/MeasureHandler.cxx
index 63b719b790f5..0aff2aa49a07 100644
--- a/sw/source/writerfilter/dmapper/MeasureHandler.cxx
+++ b/sw/source/writerfilter/dmapper/MeasureHandler.cxx
@@ -42,7 +42,7 @@ MeasureHandler::~MeasureHandler()
 }
 
 
-void MeasureHandler::lcl_attribute(Id rName, Value & rVal)
+void MeasureHandler::lcl_attribute(Id rName, const Value & rVal)
 {
     sal_Int32 nIntValue = rVal.getInt();
     switch( rName )
diff --git a/sw/source/writerfilter/dmapper/MeasureHandler.hxx 
b/sw/source/writerfilter/dmapper/MeasureHandler.hxx
index 8a6f9639eec5..59ab7563028d 100644
--- a/sw/source/writerfilter/dmapper/MeasureHandler.hxx
+++ b/sw/source/writerfilter/dmapper/MeasureHandler.hxx
@@ -38,7 +38,7 @@ class MeasureHandler : public LoggedProperties
     std::vector<css::beans::PropertyValue> m_aInteropGrabBag;
 
     // Properties
-    virtual void lcl_attribute(Id Name, Value& val) override;
+    virtual void lcl_attribute(Id Name, const Value& val) override;
     virtual void lcl_sprm(Sprm& sprm) override;
 
 public:
diff --git a/sw/source/writerfilter/dmapper/NumberingManager.cxx 
b/sw/source/writerfilter/dmapper/NumberingManager.cxx
index af97ead5f9c6..576a0caa4cce 100644
--- a/sw/source/writerfilter/dmapper/NumberingManager.cxx
+++ b/sw/source/writerfilter/dmapper/NumberingManager.cxx
@@ -692,7 +692,7 @@ void ListsManager::DisposeNumPicBullets( )
     }
 }
 
-void ListsManager::lcl_attribute( Id nName, Value& rVal )
+void ListsManager::lcl_attribute( Id nName, const Value& rVal )
 {
     ListLevel::Pointer pCurrentLvl;
 
@@ -826,7 +826,8 @@ void ListsManager::lcl_sprm( Sprm& rSprm )
         return;
 
     static bool bIsStartVisited = false;
-    sal_Int32 nIntValue = rSprm.getValue()->getInt();
+    const Value* pValue = rSprm.getValue();
+    sal_Int32 nIntValue = pValue ? pValue->getInt() : 0;
     switch( nSprmId )
     {
         case NS_ooxml::LN_CT_Numbering_abstractNum:
diff --git a/sw/source/writerfilter/dmapper/NumberingManager.hxx 
b/sw/source/writerfilter/dmapper/NumberingManager.hxx
index 767b6b5d60e9..8f39bddfc532 100644
--- a/sw/source/writerfilter/dmapper/NumberingManager.hxx
+++ b/sw/source/writerfilter/dmapper/NumberingManager.hxx
@@ -224,7 +224,7 @@ private:
     AbstractListDef::Pointer    GetAbstractList( sal_Int32 nId );
 
     // Properties
-    virtual void lcl_attribute( Id nName, Value & rVal ) override;
+    virtual void lcl_attribute( Id nName, const Value & rVal ) override;
     virtual void lcl_sprm(Sprm & sprm) override;
 
     // Table
diff --git a/sw/source/writerfilter/dmapper/OLEHandler.cxx 
b/sw/source/writerfilter/dmapper/OLEHandler.cxx
index 660f1f651259..f28d53816f8b 100644
--- a/sw/source/writerfilter/dmapper/OLEHandler.cxx
+++ b/sw/source/writerfilter/dmapper/OLEHandler.cxx
@@ -63,7 +63,7 @@ OLEHandler::~OLEHandler()
 }
 
 
-void OLEHandler::lcl_attribute(Id rName, Value & rVal)
+void OLEHandler::lcl_attribute(Id rName, const Value & rVal)
 {
     OUString sStringValue = rVal.getString();
     switch( rName )
diff --git a/sw/source/writerfilter/dmapper/OLEHandler.hxx 
b/sw/source/writerfilter/dmapper/OLEHandler.hxx
index 1a7e40b6cecd..cd5d59d5c17d 100644
--- a/sw/source/writerfilter/dmapper/OLEHandler.hxx
+++ b/sw/source/writerfilter/dmapper/OLEHandler.hxx
@@ -62,7 +62,7 @@ class OLEHandler : public LoggedProperties
     DomainMapper& m_rDomainMapper;
 
     // Properties
-    virtual void lcl_attribute(Id Name, Value & val) override;
+    virtual void lcl_attribute(Id Name, const Value & val) override;
     virtual void lcl_sprm(Sprm & sprm) override;
 
 public:
diff --git a/sw/source/writerfilter/dmapper/PageBordersHandler.cxx 
b/sw/source/writerfilter/dmapper/PageBordersHandler.cxx
index 89548eb351ee..51aa57498d28 100644
--- a/sw/source/writerfilter/dmapper/PageBordersHandler.cxx
+++ b/sw/source/writerfilter/dmapper/PageBordersHandler.cxx
@@ -42,7 +42,7 @@ PageBordersHandler::~PageBordersHandler( )
 {
 }
 
-void PageBordersHandler::lcl_attribute( Id eName, Value& rVal )
+void PageBordersHandler::lcl_attribute( Id eName, const Value& rVal )
 {
     int nIntValue = rVal.getInt( );
     switch ( eName )
diff --git a/sw/source/writerfilter/dmapper/PageBordersHandler.hxx 
b/sw/source/writerfilter/dmapper/PageBordersHandler.hxx
index 537d34b8104b..4382dadd3293 100644
--- a/sw/source/writerfilter/dmapper/PageBordersHandler.hxx
+++ b/sw/source/writerfilter/dmapper/PageBordersHandler.hxx
@@ -48,7 +48,7 @@ private:
     std::vector<PgBorder> m_aBorders;
 
     // Properties
-    virtual void lcl_attribute(Id eName, Value& rVal) override;
+    virtual void lcl_attribute(Id eName, const Value& rVal) override;
     virtual void lcl_sprm(Sprm& rSprm) override;
 
 public:
diff --git a/sw/source/writerfilter/dmapper/SectionColumnHandler.cxx 
b/sw/source/writerfilter/dmapper/SectionColumnHandler.cxx
index 363eee499d62..f83d3e881ebb 100644
--- a/sw/source/writerfilter/dmapper/SectionColumnHandler.cxx
+++ b/sw/source/writerfilter/dmapper/SectionColumnHandler.cxx
@@ -37,7 +37,7 @@ SectionColumnHandler::SectionColumnHandler()
 
 SectionColumnHandler::~SectionColumnHandler() {}
 
-void SectionColumnHandler::lcl_attribute(Id rName, Value& rVal)
+void SectionColumnHandler::lcl_attribute(Id rName, const Value& rVal)
 {
     sal_Int32 nIntValue = rVal.getInt();
     switch (rName)
diff --git a/sw/source/writerfilter/dmapper/SectionColumnHandler.hxx 
b/sw/source/writerfilter/dmapper/SectionColumnHandler.hxx
index cbef67460ed7..51cbe6df651b 100644
--- a/sw/source/writerfilter/dmapper/SectionColumnHandler.hxx
+++ b/sw/source/writerfilter/dmapper/SectionColumnHandler.hxx
@@ -41,7 +41,7 @@ class SectionColumnHandler : public LoggedProperties
     Column_   m_aTempColumn;
 
     // Properties
-    virtual void lcl_attribute(Id Name, Value & val) override;
+    virtual void lcl_attribute(Id Name, const Value & val) override;
     virtual void lcl_sprm(Sprm & sprm) override;
 
 public:
diff --git a/sw/source/writerfilter/dmapper/SettingsTable.cxx 
b/sw/source/writerfilter/dmapper/SettingsTable.cxx
index 9b918015d9de..b49a6e013ace 100644
--- a/sw/source/writerfilter/dmapper/SettingsTable.cxx
+++ b/sw/source/writerfilter/dmapper/SettingsTable.cxx
@@ -183,7 +183,7 @@ SettingsTable::~SettingsTable()
 {
 }
 
-void SettingsTable::lcl_attribute(Id nName, Value & val)
+void SettingsTable::lcl_attribute(Id nName, const Value & val)
 {
     int nIntValue = val.getInt();
     OUString sStringValue = val.getString();
@@ -254,7 +254,7 @@ void SettingsTable::lcl_sprm(Sprm& rSprm)
 {
     sal_uInt32 nSprmId = rSprm.getId();
 
-    Value::Pointer_t pValue = rSprm.getValue();
+    const Value* pValue = rSprm.getValue();
     sal_Int32 nIntValue = pValue->getInt();
 
     switch(nSprmId)
diff --git a/sw/source/writerfilter/dmapper/SettingsTable.hxx 
b/sw/source/writerfilter/dmapper/SettingsTable.hxx
index e8fd9c3a38d0..c90f5f389abf 100644
--- a/sw/source/writerfilter/dmapper/SettingsTable.hxx
+++ b/sw/source/writerfilter/dmapper/SettingsTable.hxx
@@ -107,7 +107,7 @@ public:
 
 private:
     // Properties
-    virtual void lcl_attribute(Id Name, Value& val) override;
+    virtual void lcl_attribute(Id Name, const Value& val) override;
     virtual void lcl_sprm(Sprm& sprm) override;
 
     // Table
diff --git a/sw/source/writerfilter/dmapper/SmartTagHandler.cxx 
b/sw/source/writerfilter/dmapper/SmartTagHandler.cxx
index 7f9d9303f081..ab0704b2d801 100644
--- a/sw/source/writerfilter/dmapper/SmartTagHandler.cxx
+++ b/sw/source/writerfilter/dmapper/SmartTagHandler.cxx
@@ -48,7 +48,7 @@ 
SmartTagHandler::SmartTagHandler(uno::Reference<uno::XComponentContext> xCompone
 
 SmartTagHandler::~SmartTagHandler() = default;
 
-void SmartTagHandler::lcl_attribute(Id nId, Value& rValue)
+void SmartTagHandler::lcl_attribute(Id nId, const Value& rValue)
 {
     switch (nId)
     {
diff --git a/sw/source/writerfilter/dmapper/SmartTagHandler.hxx 
b/sw/source/writerfilter/dmapper/SmartTagHandler.hxx
index 47d224e39349..20875d2958fe 100644
--- a/sw/source/writerfilter/dmapper/SmartTagHandler.hxx
+++ b/sw/source/writerfilter/dmapper/SmartTagHandler.hxx
@@ -47,7 +47,7 @@ public:
                     const rtl::Reference<SwXTextDocument>& xTextDocument);
     ~SmartTagHandler() override;
 
-    void lcl_attribute(Id nId, Value& rValue) override;
+    void lcl_attribute(Id nId, const Value& rValue) override;
     void lcl_sprm(Sprm& rSprm) override;
 
     void setURI(const OUString& rURI);
diff --git a/sw/source/writerfilter/dmapper/StyleSheetTable.cxx 
b/sw/source/writerfilter/dmapper/StyleSheetTable.cxx
index c6aa939ffad4..cef3e63fd4f6 100644
--- a/sw/source/writerfilter/dmapper/StyleSheetTable.cxx
+++ b/sw/source/writerfilter/dmapper/StyleSheetTable.cxx
@@ -418,7 +418,7 @@ PropertyMapPtr const & 
StyleSheetTable::GetDefaultCharProps() const
     return m_pImpl->m_pDefaultCharProps;
 }
 
-void StyleSheetTable::lcl_attribute(Id Name, Value & val)
+void StyleSheetTable::lcl_attribute(Id Name, const Value & val)
 {
     OSL_ENSURE( m_pImpl->m_pCurrentEntry, "current entry has to be set here");
     if(!m_pImpl->m_pCurrentEntry)
@@ -547,7 +547,7 @@ void StyleSheetTable::lcl_attribute(Id Name, Value & val)
 void StyleSheetTable::lcl_sprm(Sprm & rSprm)
 {
     sal_uInt32 nSprmId = rSprm.getId();
-    Value::Pointer_t pValue = rSprm.getValue();
+    const Value* pValue = rSprm.getValue();
     sal_Int32 nIntValue = pValue ? pValue->getInt() : 0;
     OUString sStringValue = pValue ? pValue->getString() : OUString();
 
diff --git a/sw/source/writerfilter/dmapper/StyleSheetTable.hxx 
b/sw/source/writerfilter/dmapper/StyleSheetTable.hxx
index fc2d2a0ba8fa..eaf84387b512 100644
--- a/sw/source/writerfilter/dmapper/StyleSheetTable.hxx
+++ b/sw/source/writerfilter/dmapper/StyleSheetTable.hxx
@@ -120,7 +120,7 @@ public:
 
 private:
     // Properties
-    virtual void lcl_attribute(Id Name, Value & val) override;
+    virtual void lcl_attribute(Id Name, const Value & val) override;
     virtual void lcl_sprm(Sprm & sprm) override;
 
     // Table
diff --git a/sw/source/writerfilter/dmapper/TDefTableHandler.cxx 
b/sw/source/writerfilter/dmapper/TDefTableHandler.cxx
index 8a406c4d2726..0ec52d222bc2 100644
--- a/sw/source/writerfilter/dmapper/TDefTableHandler.cxx
+++ b/sw/source/writerfilter/dmapper/TDefTableHandler.cxx
@@ -329,7 +329,7 @@ model::ThemeColorUsage 
TDefTableHandler::getThemeColorUsage(sal_Int32 nType)
     return model::ThemeColorUsage::Unknown;
 }
 
-void TDefTableHandler::lcl_attribute(Id rName, Value & rVal)
+void TDefTableHandler::lcl_attribute(Id rName, const Value & rVal)
 {
     sal_Int32 nIntValue = rVal.getInt();
     switch( rName )
diff --git a/sw/source/writerfilter/dmapper/TDefTableHandler.hxx 
b/sw/source/writerfilter/dmapper/TDefTableHandler.hxx
index 7b02d4ae0907..67b0c1a1bbed 100644
--- a/sw/source/writerfilter/dmapper/TDefTableHandler.hxx
+++ b/sw/source/writerfilter/dmapper/TDefTableHandler.hxx
@@ -61,7 +61,7 @@ class TDefTableHandler : public LoggedProperties
     void localResolve(Id Name, const 
writerfilter::Reference<Properties>::Pointer_t& pProperties);
 
     // Properties
-    virtual void lcl_attribute(Id Name, Value & val) override;
+    virtual void lcl_attribute(Id Name, const Value & val) override;
     virtual void lcl_sprm(Sprm & sprm) override;
 
 public:
diff --git a/sw/source/writerfilter/dmapper/TableManager.cxx 
b/sw/source/writerfilter/dmapper/TableManager.cxx
index 6a0c70a39f52..473967d26b02 100644
--- a/sw/source/writerfilter/dmapper/TableManager.cxx
+++ b/sw/source/writerfilter/dmapper/TableManager.cxx
@@ -260,7 +260,7 @@ bool TableManager::sprm(Sprm& rSprm)
     {
         case NS_ooxml::LN_tblDepth:
         {
-            Value::Pointer_t pValue = rSprm.getValue();
+            const Value* pValue = rSprm.getValue();
 
             cellDepth(pValue->getInt());
         }
diff --git a/sw/source/writerfilter/dmapper/TablePositionHandler.cxx 
b/sw/source/writerfilter/dmapper/TablePositionHandler.cxx
index 176dea0a877f..1500acbfe488 100644
--- a/sw/source/writerfilter/dmapper/TablePositionHandler.cxx
+++ b/sw/source/writerfilter/dmapper/TablePositionHandler.cxx
@@ -27,7 +27,7 @@ TablePositionHandler::TablePositionHandler()
 
 TablePositionHandler::~TablePositionHandler() = default;
 
-void TablePositionHandler::lcl_attribute(Id nId, Value& rVal)
+void TablePositionHandler::lcl_attribute(Id nId, const Value& rVal)
 {
     switch (nId)
     {
diff --git a/sw/source/writerfilter/dmapper/TablePositionHandler.hxx 
b/sw/source/writerfilter/dmapper/TablePositionHandler.hxx
index 8ef0f87495f0..45ca275e501f 100644
--- a/sw/source/writerfilter/dmapper/TablePositionHandler.hxx
+++ b/sw/source/writerfilter/dmapper/TablePositionHandler.hxx
@@ -33,7 +33,7 @@ class TablePositionHandler : public LoggedProperties
     Id m_nTableOverlap = 0;
 
     // Properties
-    void lcl_attribute(Id nId, Value& rVal) override;
+    void lcl_attribute(Id nId, const Value& rVal) override;
     void lcl_sprm(Sprm& sprm) override;
 
 public:
diff --git a/sw/source/writerfilter/dmapper/TablePropertiesHandler.cxx 
b/sw/source/writerfilter/dmapper/TablePropertiesHandler.cxx
index 64e88074d9d5..821f093968cb 100644
--- a/sw/source/writerfilter/dmapper/TablePropertiesHandler.cxx
+++ b/sw/source/writerfilter/dmapper/TablePropertiesHandler.cxx
@@ -57,7 +57,7 @@ namespace writerfilter::dmapper {
 
         bool bRet = true;
         sal_uInt32 nSprmId = rSprm.getId();
-        Value::Pointer_t pValue = rSprm.getValue();
+        const Value* pValue = rSprm.getValue();
         sal_Int32 nIntValue = (pValue ? pValue->getInt() : 0);
         switch( nSprmId )
         {
diff --git a/sw/source/writerfilter/dmapper/TblStylePrHandler.cxx 
b/sw/source/writerfilter/dmapper/TblStylePrHandler.cxx
index 9713e918f8dd..37c9b1b6c139 100644
--- a/sw/source/writerfilter/dmapper/TblStylePrHandler.cxx
+++ b/sw/source/writerfilter/dmapper/TblStylePrHandler.cxx
@@ -65,7 +65,7 @@ OUString TblStylePrHandler::getTypeString() const
     return OUString();
 }
 
-void TblStylePrHandler::lcl_attribute(Id rName, Value & rVal)
+void TblStylePrHandler::lcl_attribute(Id rName, const Value & rVal)
 {
 
     switch ( rName )
diff --git a/sw/source/writerfilter/dmapper/TblStylePrHandler.hxx 
b/sw/source/writerfilter/dmapper/TblStylePrHandler.hxx
index 4be7d379a647..fb3c4926a490 100644
--- a/sw/source/writerfilter/dmapper/TblStylePrHandler.hxx
+++ b/sw/source/writerfilter/dmapper/TblStylePrHandler.hxx
@@ -59,7 +59,7 @@ private:
     std::vector<css::beans::PropertyValue> m_aInteropGrabBag;
 
     // Properties
-    virtual void lcl_attribute(Id Name, Value & val) override;
+    virtual void lcl_attribute(Id Name, const Value & val) override;
     virtual void lcl_sprm(Sprm & sprm) override;
 
 public:
diff --git a/sw/source/writerfilter/dmapper/TextEffectsHandler.cxx 
b/sw/source/writerfilter/dmapper/TextEffectsHandler.cxx
index 612baf34dfa4..6988ea593974 100644
--- a/sw/source/writerfilter/dmapper/TextEffectsHandler.cxx
+++ b/sw/source/writerfilter/dmapper/TextEffectsHandler.cxx
@@ -493,7 +493,7 @@ TextEffectsHandler::~TextEffectsHandler()
 }
 
 
-void TextEffectsHandler::lcl_attribute(Id aName, Value& aValue)
+void TextEffectsHandler::lcl_attribute(Id aName, const Value& aValue)
 {
     if (mpGrabBagStack->getCurrentName() != constAttributesSequenceName)
         mpGrabBagStack->push(constAttributesSequenceName);
diff --git a/sw/source/writerfilter/dmapper/TextEffectsHandler.hxx 
b/sw/source/writerfilter/dmapper/TextEffectsHandler.hxx
index 30a8435b2829..f442745e5aeb 100644
--- a/sw/source/writerfilter/dmapper/TextEffectsHandler.hxx
+++ b/sw/source/writerfilter/dmapper/TextEffectsHandler.hxx
@@ -61,7 +61,7 @@ public:
     static sal_uInt8 GetTextFillSolidFillAlpha(const 
css::beans::PropertyValue& rValue);
 
     // LoggedProperties
-    virtual void lcl_attribute(Id aName, Value& aValue) override;
+    virtual void lcl_attribute(Id aName, const Value& aValue) override;
     virtual void lcl_sprm(Sprm& sprm) override;
 };
 }
diff --git a/sw/source/writerfilter/dmapper/ThemeColorHandler.hxx 
b/sw/source/writerfilter/dmapper/ThemeColorHandler.hxx
index 012b4ee3472f..49d7db20674f 100644
--- a/sw/source/writerfilter/dmapper/ThemeColorHandler.hxx
+++ b/sw/source/writerfilter/dmapper/ThemeColorHandler.hxx
@@ -38,7 +38,7 @@ public:
     {
     }
 
-    virtual void lcl_attribute(Id aName, Value& rValue) override
+    virtual void lcl_attribute(Id aName, const Value& rValue) override
     {
         sal_Int32 nIntValue = rValue.getInt();
 
diff --git a/sw/source/writerfilter/dmapper/TrackChangesHandler.cxx 
b/sw/source/writerfilter/dmapper/TrackChangesHandler.cxx
index 47a52d6df695..6dbd858ce25e 100644
--- a/sw/source/writerfilter/dmapper/TrackChangesHandler.cxx
+++ b/sw/source/writerfilter/dmapper/TrackChangesHandler.cxx
@@ -33,7 +33,7 @@ TrackChangesHandler::~TrackChangesHandler()
 }
 
 
-void TrackChangesHandler::lcl_attribute(Id rName, Value & rVal)
+void TrackChangesHandler::lcl_attribute(Id rName, const Value & rVal)
 {
     OUString sStringValue = rVal.getString();
     switch( rName )
diff --git a/sw/source/writerfilter/dmapper/TrackChangesHandler.hxx 
b/sw/source/writerfilter/dmapper/TrackChangesHandler.hxx
index b3417ccced1f..93df64486cc8 100644
--- a/sw/source/writerfilter/dmapper/TrackChangesHandler.hxx
+++ b/sw/source/writerfilter/dmapper/TrackChangesHandler.hxx
@@ -25,7 +25,7 @@ class TrackChangesHandler : public LoggedProperties
     RedlineParamsPtr m_pRedlineParams;
 
     // Properties
-    virtual void lcl_attribute(Id Name, Value& val) override;
+    virtual void lcl_attribute(Id Name, const Value& val) override;
     virtual void lcl_sprm(Sprm& sprm) override;
 
 public:
diff --git a/sw/source/writerfilter/dmapper/WrapPolygonHandler.cxx 
b/sw/source/writerfilter/dmapper/WrapPolygonHandler.cxx
index 96d39fb4892f..7ee81d19e385 100644
--- a/sw/source/writerfilter/dmapper/WrapPolygonHandler.cxx
+++ b/sw/source/writerfilter/dmapper/WrapPolygonHandler.cxx
@@ -170,7 +170,7 @@ WrapPolygonHandler::~WrapPolygonHandler()
 {
 }
 
-void WrapPolygonHandler::lcl_attribute(Id Name, Value & val)
+void WrapPolygonHandler::lcl_attribute(Id Name, const Value & val)
 {
     sal_Int32 nIntValue = val.getInt();
 
diff --git a/sw/source/writerfilter/dmapper/WrapPolygonHandler.hxx 
b/sw/source/writerfilter/dmapper/WrapPolygonHandler.hxx
index 5af555682fdf..fa532f302582 100644
--- a/sw/source/writerfilter/dmapper/WrapPolygonHandler.hxx
+++ b/sw/source/writerfilter/dmapper/WrapPolygonHandler.hxx
@@ -73,7 +73,7 @@ private:
     sal_Int32 mnY;
 
     // Properties
-    virtual void lcl_attribute(Id Name, Value& val) override;
+    virtual void lcl_attribute(Id Name, const Value& val) override;
     virtual void lcl_sprm(Sprm& sprm) override;
 };
 }
diff --git a/sw/source/writerfilter/dmapper/WriteProtection.cxx 
b/sw/source/writerfilter/dmapper/WriteProtection.cxx
index 4ed838474813..eddf20b6a4bd 100644
--- a/sw/source/writerfilter/dmapper/WriteProtection.cxx
+++ b/sw/source/writerfilter/dmapper/WriteProtection.cxx
@@ -37,7 +37,7 @@ WriteProtection::WriteProtection()
 
 WriteProtection::~WriteProtection() {}
 
-void WriteProtection::lcl_attribute(Id nName, Value& val)
+void WriteProtection::lcl_attribute(Id nName, const Value& val)
 {
     int nIntValue = val.getInt();
     OUString sStringValue = val.getString();
diff --git a/sw/source/writerfilter/dmapper/WriteProtection.hxx 
b/sw/source/writerfilter/dmapper/WriteProtection.hxx
index 21b420b4bcd9..0cad083e9cb3 100644
--- a/sw/source/writerfilter/dmapper/WriteProtection.hxx
+++ b/sw/source/writerfilter/dmapper/WriteProtection.hxx
@@ -42,7 +42,7 @@ private:
     OUString m_sSalt;
     bool m_bRecommended;
 
-    virtual void lcl_attribute(Id Name, Value& val) override;
+    virtual void lcl_attribute(Id Name, const Value& val) override;
     virtual void lcl_sprm(Sprm& sprm) override;
 
 public:
diff --git a/sw/source/writerfilter/inc/dmapper/resourcemodel.hxx 
b/sw/source/writerfilter/inc/dmapper/resourcemodel.hxx
index 5b64de51ba2c..ea4ecdde03af 100644
--- a/sw/source/writerfilter/inc/dmapper/resourcemodel.hxx
+++ b/sw/source/writerfilter/inc/dmapper/resourcemodel.hxx
@@ -122,7 +122,7 @@ public:
        @param name     name of the attribute
        @param val      value of the attribute
      */
-    virtual void attribute(Id name, Value& val) = 0;
+    virtual void attribute(Id name, const Value& val) = 0;
 
     /**
        Receives a SPRM.
@@ -356,12 +356,12 @@ public:
     /**
        Returns properties of this value.
      */
-    virtual writerfilter::Reference<Properties>::Pointer_t getProperties() = 0;
+    virtual writerfilter::Reference<Properties>::Pointer_t getProperties() 
const = 0;
 
     /**
        Returns binary object  of this value.
      */
-    virtual writerfilter::Reference<BinaryObj>::Pointer_t getBinary() = 0;
+    virtual writerfilter::Reference<BinaryObj>::Pointer_t getBinary() const = 
0;
 
     /**
        Returns string representation of this value.
@@ -386,9 +386,9 @@ public:
     virtual sal_uInt32 getId() const = 0;
 
     /**
-       Returns value of the SPRM.
+       Returns value of the SPRM. Returns nullptr if the internal value is 
nullptr.
      */
-    virtual Value::Pointer_t getValue() = 0;
+    virtual const Value* getValue() const = 0;
 
     /**
        Returns reference to properties contained in the SPRM.
diff --git a/sw/source/writerfilter/ooxml/Handler.cxx 
b/sw/source/writerfilter/ooxml/Handler.cxx
index 7cbd9b6bfdc3..103344d2b097 100644
--- a/sw/source/writerfilter/ooxml/Handler.cxx
+++ b/sw/source/writerfilter/ooxml/Handler.cxx
@@ -37,7 +37,7 @@ OOXMLFootnoteHandler::~OOXMLFootnoteHandler()
 {
 }
 
-void OOXMLFootnoteHandler::attribute(Id name, Value & val)
+void OOXMLFootnoteHandler::attribute(Id name, const Value & val)
 {
     switch (name)
     {
@@ -65,7 +65,7 @@ OOXMLEndnoteHandler::~OOXMLEndnoteHandler()
 {
 }
 
-void OOXMLEndnoteHandler::attribute(Id name, Value & val)
+void OOXMLEndnoteHandler::attribute(Id name, const Value & val)
 {
     switch (name)
     {
@@ -93,7 +93,7 @@ OOXMLCommentHandler::~OOXMLCommentHandler()
 {
 }
 
-void OOXMLCommentHandler::attribute(Id name, Value & val)
+void OOXMLCommentHandler::attribute(Id name, const Value & val)
 {
     switch (name)
     {
@@ -121,7 +121,7 @@ OOXMLOLEHandler::~OOXMLOLEHandler()
 {
 }
 
-void OOXMLOLEHandler::attribute(Id name, Value & val)
+void OOXMLOLEHandler::attribute(Id name, const Value & val)
 {
     switch (name)
     {
@@ -153,7 +153,7 @@ OOXMLEmbeddedFontHandler::~OOXMLEmbeddedFontHandler()
 {
 }
 
-void OOXMLEmbeddedFontHandler::attribute(Id name, Value & val)
+void OOXMLEmbeddedFontHandler::attribute(Id name, const Value & val)
 {
     switch (name)
     {
@@ -182,7 +182,7 @@ void OOXMLFooterHandler::finalize()
     mpFastContext->resolveFooter(mnType, msStreamId);
 }
 
-void OOXMLFooterHandler::attribute(Id name, Value & val)
+void OOXMLFooterHandler::attribute(Id name, const Value & val)
 {
     switch (name)
     {
@@ -214,7 +214,7 @@ void OOXMLHeaderHandler::finalize()
     mpFastContext->resolveHeader(mnType, msStreamId);
 }
 
-void OOXMLHeaderHandler::attribute(Id name, Value & val)
+void OOXMLHeaderHandler::attribute(Id name, const Value & val)
 {
     switch (name)
     {
@@ -268,7 +268,7 @@ OOXMLBreakHandler::~OOXMLBreakHandler()
     mrStream.text(&tmpBreak[0], 1);
 }
 
-void OOXMLBreakHandler::attribute(Id name, Value & val)
+void OOXMLBreakHandler::attribute(Id name, const Value & val)
 {
     switch (name)
     {
@@ -298,7 +298,7 @@ OOXMLPictureHandler::~OOXMLPictureHandler()
 {
 }
 
-void OOXMLPictureHandler::attribute(Id name, Value & val)
+void OOXMLPictureHandler::attribute(Id name, const Value & val)
 {
     if (name == NS_ooxml::LN_AG_Blob_r_embed)
         mpFastContext->resolvePicture(val.getString());
@@ -339,7 +339,7 @@ void OOXMLHyperlinkHandler::writetext()
     mpFastContext->text(sReturn);
 }
 
-void OOXMLHyperlinkHandler::attribute(Id name, Value & val)
+void OOXMLHyperlinkHandler::attribute(Id name, const Value & val)
 {
     switch (name)
     {
@@ -389,7 +389,7 @@ OOXMLHyperlinkURLHandler::~OOXMLHyperlinkURLHandler()
     mpFastContext->newProperty(NS_ooxml::LN_CT_Hyperlink_URL, 
OOXMLValue::Pointer_t(new OOXMLStringValue(mURL)));
 }
 
-void OOXMLHyperlinkURLHandler::attribute(Id name, Value & val)
+void OOXMLHyperlinkURLHandler::attribute(Id name, const Value & val)
 {
     switch (name)
     {
@@ -417,7 +417,7 @@ OOXMLAltChunkHandler::~OOXMLAltChunkHandler()
                                OOXMLValue::Pointer_t(new 
OOXMLStringValue(m_aStreamName)));
 }
 
-void OOXMLAltChunkHandler::attribute(Id nName, Value& rValue)
+void OOXMLAltChunkHandler::attribute(Id nName, const Value& rValue)
 {
     switch (nName)
     {
diff --git a/sw/source/writerfilter/ooxml/Handler.hxx 
b/sw/source/writerfilter/ooxml/Handler.hxx
index df6673d44318..a2ae1aa614f5 100644
--- a/sw/source/writerfilter/ooxml/Handler.hxx
+++ b/sw/source/writerfilter/ooxml/Handler.hxx
@@ -31,7 +31,7 @@ public:
     explicit OOXMLFootnoteHandler(OOXMLFastContextHandler* pContext);
     virtual ~OOXMLFootnoteHandler() override;
 
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 
@@ -43,7 +43,7 @@ public:
     explicit OOXMLEndnoteHandler(OOXMLFastContextHandler* pContext);
     virtual ~OOXMLEndnoteHandler() override;
 
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 
@@ -56,7 +56,7 @@ class OOXMLFooterHandler : public Properties
 public:
     explicit OOXMLFooterHandler(OOXMLFastContextHandler* pContext);
     void finalize();
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 
@@ -69,7 +69,7 @@ class OOXMLHeaderHandler : public Properties
 public:
     explicit OOXMLHeaderHandler(OOXMLFastContextHandler* pContext);
     void finalize();
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 
@@ -80,7 +80,7 @@ class OOXMLCommentHandler : public Properties
 public:
     explicit OOXMLCommentHandler(OOXMLFastContextHandler* pContext);
     virtual ~OOXMLCommentHandler() override;
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 
@@ -92,7 +92,7 @@ public:
     explicit OOXMLOLEHandler(OOXMLFastContextHandler* pContext);
     virtual ~OOXMLOLEHandler() override;
 
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 
@@ -104,7 +104,7 @@ public:
     explicit OOXMLEmbeddedFontHandler(OOXMLFastContextHandler* pContext);
     virtual ~OOXMLEmbeddedFontHandler() override;
 
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 
@@ -117,7 +117,7 @@ class OOXMLBreakHandler : public Properties
 public:
     explicit OOXMLBreakHandler(OOXMLFastContextHandler* pContext, Stream& 
rStream);
     virtual ~OOXMLBreakHandler() override;
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 
@@ -129,7 +129,7 @@ public:
     explicit OOXMLPictureHandler(OOXMLFastContextHandler* pContext);
     virtual ~OOXMLPictureHandler() override;
 
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 
@@ -144,7 +144,7 @@ public:
     virtual ~OOXMLHyperlinkHandler() override;
     void writetext();
 
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 
@@ -157,7 +157,7 @@ public:
     explicit OOXMLHyperlinkURLHandler(OOXMLFastContextHandler* pContext);
     virtual ~OOXMLHyperlinkURLHandler() override;
 
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 
@@ -171,7 +171,7 @@ public:
     explicit OOXMLAltChunkHandler(OOXMLFastContextHandler* pContext);
     virtual ~OOXMLAltChunkHandler() override;
 
-    virtual void attribute(Id name, Value& val) override;
+    virtual void attribute(Id name, const Value& val) override;
     virtual void sprm(Sprm& sprm) override;
 };
 }
diff --git a/sw/source/writerfilter/ooxml/OOXMLPropertySet.cxx 
b/sw/source/writerfilter/ooxml/OOXMLPropertySet.cxx
index ddd40cbe0ea4..0293f1b10928 100644
--- a/sw/source/writerfilter/ooxml/OOXMLPropertySet.cxx
+++ b/sw/source/writerfilter/ooxml/OOXMLPropertySet.cxx
@@ -46,18 +46,6 @@ sal_uInt32 OOXMLProperty::getId() const
     return mId;
 }
 
-Value::Pointer_t OOXMLProperty::getValue()
-{
-    Value::Pointer_t pResult;
-
-    if (mpValue)
-        pResult = Value::Pointer_t(mpValue->clone());
-    else
-        pResult = Value::Pointer_t(new OOXMLValue());
-
-    return pResult;
-}
-
 writerfilter::Reference<Properties>::Pointer_t OOXMLProperty::getProps()
 {
     writerfilter::Reference<Properties>::Pointer_t pResult;
@@ -146,12 +134,12 @@ uno::Any OOXMLValue::getAny() const
     return uno::Any();
 }
 
-writerfilter::Reference<Properties>::Pointer_t OOXMLValue::getProperties()
+writerfilter::Reference<Properties>::Pointer_t OOXMLValue::getProperties() 
const
 {
     return writerfilter::Reference<Properties>::Pointer_t();
 }
 
-writerfilter::Reference<BinaryObj>::Pointer_t OOXMLValue::getBinary()
+writerfilter::Reference<BinaryObj>::Pointer_t OOXMLValue::getBinary() const
 {
     return writerfilter::Reference<BinaryObj>::Pointer_t();
 }
@@ -181,7 +169,7 @@ OOXMLBinaryValue::~OOXMLBinaryValue()
 {
 }
 
-writerfilter::Reference<BinaryObj>::Pointer_t OOXMLBinaryValue::getBinary()
+writerfilter::Reference<BinaryObj>::Pointer_t OOXMLBinaryValue::getBinary() 
const
 {
     return mpBinaryObj;
 }
@@ -439,7 +427,7 @@ OOXMLPropertySetValue::~OOXMLPropertySetValue()
 {
 }
 
-writerfilter::Reference<Properties>::Pointer_t 
OOXMLPropertySetValue::getProperties()
+writerfilter::Reference<Properties>::Pointer_t 
OOXMLPropertySetValue::getProperties() const
 {
     return writerfilter::Reference<Properties>::Pointer_t
         (mpPropertySet->clone());
@@ -792,7 +780,7 @@ void OOXMLPropertySetEntryToString::sprm(Sprm & /*rSprm*/)
 {
 }
 
-void OOXMLPropertySetEntryToString::attribute(Id nId, Value & rValue)
+void OOXMLPropertySetEntryToString::attribute(Id nId, const Value & rValue)
 {
     if (nId == mnId)
         mStr = rValue.getString();
@@ -815,7 +803,7 @@ void OOXMLPropertySetEntryToInteger::sprm(Sprm & /*rSprm*/)
 {
 }
 
-void OOXMLPropertySetEntryToInteger::attribute(Id nId, Value & rValue)
+void OOXMLPropertySetEntryToInteger::attribute(Id nId, const Value & rValue)
 {
     if (nId == mnId)
         mnValue = rValue.getInt();
@@ -833,7 +821,7 @@ OOXMLPropertySetEntryToBool::~OOXMLPropertySetEntryToBool() 
{}
 
 void OOXMLPropertySetEntryToBool::sprm(Sprm & /*rSprm*/) {}
 
-void OOXMLPropertySetEntryToBool::attribute(Id nId, Value & rValue)
+void OOXMLPropertySetEntryToBool::attribute(Id nId, const Value & rValue)
 {
     if (nId == mnId)
         mValue = (rValue.getInt() != 0);
diff --git a/sw/source/writerfilter/ooxml/OOXMLPropertySet.hxx 
b/sw/source/writerfilter/ooxml/OOXMLPropertySet.hxx
index 465873963a78..524d7ff5ae94 100644
--- a/sw/source/writerfilter/ooxml/OOXMLPropertySet.hxx
+++ b/sw/source/writerfilter/ooxml/OOXMLPropertySet.hxx
@@ -41,8 +41,8 @@ public:
     ;
     virtual OUString getString() const override;
     virtual css::uno::Any getAny() const override;
-    virtual writerfilter::Reference<Properties>::Pointer_t getProperties() 
override;
-    virtual writerfilter::Reference<BinaryObj>::Pointer_t getBinary() override;
+    virtual writerfilter::Reference<Properties>::Pointer_t getProperties() 
const override;
+    virtual writerfilter::Reference<BinaryObj>::Pointer_t getBinary() const 
override;
 #ifdef DBG_UTIL
     virtual std::string toString() const override;
 #endif
@@ -70,7 +70,7 @@ public:
     virtual ~OOXMLProperty() override;
 
     sal_uInt32 getId() const override;
-    Value::Pointer_t getValue() override;
+    const OOXMLValue* getValue() const override { return mpValue.get(); }
     writerfilter::Reference<Properties>::Pointer_t getProps() override;
 #ifdef DBG_UTIL
     std::string getName() const override;
@@ -87,7 +87,7 @@ public:
     explicit OOXMLBinaryValue(OOXMLBinaryObjectReference::Pointer_t 
pBinaryObj);
     virtual ~OOXMLBinaryValue() override;
 
-    virtual writerfilter::Reference<BinaryObj>::Pointer_t getBinary() override;
+    virtual writerfilter::Reference<BinaryObj>::Pointer_t getBinary() const 
override;
 #ifdef DBG_UTIL
     virtual std::string toString() const override;
 #endif
@@ -228,7 +228,7 @@ public:
     OOXMLPropertySetValue& operator=(OOXMLPropertySetValue&&)
         = delete; // due to const mpPropertySet
 
-    virtual writerfilter::Reference<Properties>::Pointer_t getProperties() 
override;
+    virtual writerfilter::Reference<Properties>::Pointer_t getProperties() 
const override;
 #ifdef DBG_UTIL
     virtual std::string toString() const override;
 #endif
@@ -376,7 +376,7 @@ public:
     virtual ~OOXMLPropertySetEntryToString() override;
 
     virtual void sprm(Sprm& rSprm) override;
-    virtual void attribute(Id nId, Value& rValue) override;
+    virtual void attribute(Id nId, const Value& rValue) override;
 
     const OUString& getString() const { return mStr; }
 };
@@ -391,7 +391,7 @@ public:
     virtual ~OOXMLPropertySetEntryToInteger() override;
 
     virtual void sprm(Sprm& rSprm) override;
-    virtual void attribute(Id nId, Value& rValue) override;
+    virtual void attribute(Id nId, const Value& rValue) override;
 
     int getValue() const { return mnValue; }
 };
@@ -406,7 +406,7 @@ public:
     virtual ~OOXMLPropertySetEntryToBool() override;
 
     virtual void sprm(Sprm& rSprm) override;
-    virtual void attribute(Id nId, Value& rValue) override;
+    virtual void attribute(Id nId, const Value& rValue) override;
 
     bool getValue() const { return mValue; }
 };
diff --git a/sw/source/writerfilter/rtftok/rtfsprm.cxx 
b/sw/source/writerfilter/rtftok/rtfsprm.cxx
index c2ae83dcd6c8..8de1626f252f 100644
--- a/sw/source/writerfilter/rtftok/rtfsprm.cxx
+++ b/sw/source/writerfilter/rtftok/rtfsprm.cxx
@@ -24,8 +24,6 @@ RTFSprm::RTFSprm(Id nKeyword, RTFValue::Pointer_t& pValue)
 
 sal_uInt32 RTFSprm::getId() const { return m_nKeyword; }
 
-Value::Pointer_t RTFSprm::getValue() { return 
Value::Pointer_t(m_pValue->Clone()); }
-
 writerfilter::Reference<Properties>::Pointer_t RTFSprm::getProps()
 {
     return m_pValue->getProperties();
diff --git a/sw/source/writerfilter/rtftok/rtfsprm.hxx 
b/sw/source/writerfilter/rtftok/rtfsprm.hxx
index 132a2bbcbeb2..c493fd6e3d4a 100644
--- a/sw/source/writerfilter/rtftok/rtfsprm.hxx
+++ b/sw/source/writerfilter/rtftok/rtfsprm.hxx
@@ -86,7 +86,7 @@ class RTFSprm : public Sprm
 public:
     RTFSprm(Id nKeyword, RTFValue::Pointer_t& pValue);
     sal_uInt32 getId() const override;
-    Value::Pointer_t getValue() override;
+    virtual const RTFValue* getValue() const override { return m_pValue.get(); 
}
     writerfilter::Reference<Properties>::Pointer_t getProps() override;
 #ifdef DBG_UTIL
     std::string getName() const override;
diff --git a/sw/source/writerfilter/rtftok/rtfvalue.cxx 
b/sw/source/writerfilter/rtftok/rtfvalue.cxx
index 6654a3f2eca5..0ea96d52cddb 100644
--- a/sw/source/writerfilter/rtftok/rtfvalue.cxx
+++ b/sw/source/writerfilter/rtftok/rtfvalue.cxx
@@ -138,12 +138,12 @@ RTFPicture& RTFValue::getPicture() const
     return *m_pPicture;
 }
 
-writerfilter::Reference<Properties>::Pointer_t RTFValue::getProperties()
+writerfilter::Reference<Properties>::Pointer_t RTFValue::getProperties() const
 {
     return new RTFReferenceProperties(getAttributes(), getSprms());
 }
 
-writerfilter::Reference<BinaryObj>::Pointer_t RTFValue::getBinary()
+writerfilter::Reference<BinaryObj>::Pointer_t RTFValue::getBinary() const
 {
     return writerfilter::Reference<BinaryObj>::Pointer_t();
 }
diff --git a/sw/source/writerfilter/rtftok/rtfvalue.hxx 
b/sw/source/writerfilter/rtftok/rtfvalue.hxx
index 6c87c61a1d05..0e232d949088 100644
--- a/sw/source/writerfilter/rtftok/rtfvalue.hxx
+++ b/sw/source/writerfilter/rtftok/rtfvalue.hxx
@@ -59,8 +59,8 @@ public:
     int getInt() const override;
     OUString getString() const override;
     css::uno::Any getAny() const override;
-    writerfilter::Reference<Properties>::Pointer_t getProperties() override;
-    writerfilter::Reference<BinaryObj>::Pointer_t getBinary() override;
+    writerfilter::Reference<Properties>::Pointer_t getProperties() const 
override;
+    writerfilter::Reference<BinaryObj>::Pointer_t getBinary() const override;
 #ifdef DBG_UTIL
     std::string toString() const override;
 #endif
commit c0c485676b753ad520f6fdaa83f3c6698fbb7369
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Wed Aug 21 13:19:45 2024 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Thu Aug 22 08:15:30 2024 +0200

    tdf#158556 map->unordered_map
    
    faster lookups for this cache
    
    Change-Id: I4c0c2da5937bdc0cbcb1041557a8784474d2be0e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172209
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Tested-by: Jenkins

diff --git a/sw/source/writerfilter/ooxml/OOXMLStreamImpl.hxx 
b/sw/source/writerfilter/ooxml/OOXMLStreamImpl.hxx
index ec65290c6214..39f0177ee340 100644
--- a/sw/source/writerfilter/ooxml/OOXMLStreamImpl.hxx
+++ b/sw/source/writerfilter/ooxml/OOXMLStreamImpl.hxx
@@ -18,7 +18,7 @@
  */
 #pragma once
 
-#include <map>
+#include <unordered_map>
 
 #include <ooxml/OOXMLDocument.hxx>
 #include <com/sun/star/embed/XRelationshipAccess.hpp>
@@ -48,7 +48,7 @@ class OOXMLStreamImpl : public OOXMLStream
     OUString msTarget;
 
     /// Cache holding an Id <-> Target map of external relations.
-    std::map<OUString, OUString> maIdCache;
+    std::unordered_map<OUString, OUString> maIdCache;
 
     bool lcl_getTarget(const 
css::uno::Reference<css::embed::XRelationshipAccess>& xRelationshipAccess,
                        StreamType_t nStreamType,

Reply via email to