chart2/source/inc/CachedDataSequence.hxx          |    4 +--
 chart2/source/inc/ErrorBar.hxx                    |    4 +--
 chart2/source/inc/LabeledDataSequence.hxx         |    3 +-
 chart2/source/inc/ModifyListenerHelper.hxx        |   12 ++++++---
 chart2/source/model/inc/BaseCoordinateSystem.hxx  |    5 +--
 chart2/source/model/inc/DataSeries.hxx            |    5 +--
 chart2/source/model/inc/Diagram.hxx               |    5 +--
 chart2/source/model/inc/StockBar.hxx              |    5 +--
 chart2/source/model/main/Axis.cxx                 |   24 +++---------------
 chart2/source/model/main/Axis.hxx                 |    5 +--
 chart2/source/model/main/BaseCoordinateSystem.cxx |   24 +++---------------
 chart2/source/model/main/DataPoint.cxx            |   24 +++---------------
 chart2/source/model/main/DataPoint.hxx            |    5 +--
 chart2/source/model/main/DataSeries.cxx           |   24 +++---------------
 chart2/source/model/main/Diagram.cxx              |   24 +++---------------
 chart2/source/model/main/FormattedString.cxx      |   24 +++---------------
 chart2/source/model/main/FormattedString.hxx      |    5 +--
 chart2/source/model/main/GridProperties.cxx       |   24 +++---------------
 chart2/source/model/main/GridProperties.hxx       |    5 +--
 chart2/source/model/main/Legend.cxx               |   24 +++---------------
 chart2/source/model/main/Legend.hxx               |    5 +--
 chart2/source/model/main/PageBackground.cxx       |   24 +++---------------
 chart2/source/model/main/PageBackground.hxx       |    6 +---
 chart2/source/model/main/StockBar.cxx             |   24 +++---------------
 chart2/source/model/main/Title.cxx                |   24 +++---------------
 chart2/source/model/main/Title.hxx                |    5 +--
 chart2/source/model/main/Wall.cxx                 |   24 +++---------------
 chart2/source/model/main/Wall.hxx                 |    5 +--
 chart2/source/model/template/ChartType.cxx        |    4 +--
 chart2/source/tools/CachedDataSequence.cxx        |   28 ++++------------------
 chart2/source/tools/ErrorBar.cxx                  |   24 +++---------------
 chart2/source/tools/LabeledDataSequence.cxx       |   26 +++-----------------
 chart2/source/tools/ModifyListenerHelper.cxx      |    7 -----
 chart2/source/tools/RegressionCurveModel.cxx      |   24 +++---------------
 chart2/source/tools/RegressionCurveModel.hxx      |    5 +--
 chart2/source/tools/RegressionEquation.cxx        |   24 +++---------------
 chart2/source/tools/RegressionEquation.hxx        |    5 +--
 chart2/source/tools/UncachedDataSequence.cxx      |    6 ++--
 38 files changed, 119 insertions(+), 406 deletions(-)

New commits:
commit bd1fbe307840eedadcb0266ed097a21765d3e579
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Thu Jan 13 19:20:13 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Fri Jan 14 08:18:56 2022 +0100

    use more concrete types in chart2
    
    in this case, ModifyEventForwarder.
    Instead of doing UNO_QUERY and implicitly relying on it's
    implementation, make it obvious what we are doing
    
    Change-Id: Ie02a11f115da9c8af7d4ca85bda9fb9a69c5d52f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128392
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/chart2/source/inc/CachedDataSequence.hxx 
b/chart2/source/inc/CachedDataSequence.hxx
index bd6fdc594bf6..e9c1b9d50d25 100644
--- a/chart2/source/inc/CachedDataSequence.hxx
+++ b/chart2/source/inc/CachedDataSequence.hxx
@@ -32,7 +32,7 @@
 #include <com/sun/star/chart2/data/XNumericalDataSequence.hpp>
 #include <com/sun/star/chart2/data/XTextualDataSequence.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
+#include "ModifyListenerHelper.hxx"
 
 namespace com::sun::star::uno { class XComponentContext; }
 
@@ -156,7 +156,7 @@ private:
     css::uno::Sequence< double >                           
m_aNumericalSequence;
     css::uno::Sequence< OUString >                         m_aTextualSequence;
     css::uno::Sequence< css::uno::Any >                    m_aMixedSequence;
-    css::uno::Reference< css::util::XModifyListener >      
m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 }  // namespace chart
diff --git a/chart2/source/inc/ErrorBar.hxx b/chart2/source/inc/ErrorBar.hxx
index 7e2638eba133..bf31ed364d72 100644
--- a/chart2/source/inc/ErrorBar.hxx
+++ b/chart2/source/inc/ErrorBar.hxx
@@ -35,7 +35,7 @@
 #include <com/sun/star/util/XCloneable.hpp>
 #include <com/sun/star/util/Color.hpp>
 #include <com/sun/star/util/XModifyListener.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
+#include "ModifyListenerHelper.hxx"
 
 
 #include <vector>
@@ -132,7 +132,7 @@ private:
             css::chart2::data::XLabeledDataSequence > > tDataSequenceContainer;
     tDataSequenceContainer m_aDataSequences;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 } //  namespace chart
diff --git a/chart2/source/inc/LabeledDataSequence.hxx 
b/chart2/source/inc/LabeledDataSequence.hxx
index 37b067d1a607..594d0c89dd6e 100644
--- a/chart2/source/inc/LabeledDataSequence.hxx
+++ b/chart2/source/inc/LabeledDataSequence.hxx
@@ -23,6 +23,7 @@
 
 #include <com/sun/star/chart2/data/XLabeledDataSequence2.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
+#include "ModifyListenerHelper.hxx"
 
 namespace com::sun::star::chart2::data { class XDataSequence; }
 namespace com::sun::star::util { class XCloneable; }
@@ -80,7 +81,7 @@ private:
     css::uno::Reference< css::chart2::data::XDataSequence > m_xData;
     css::uno::Reference< css::chart2::data::XDataSequence > m_xLabel;
 
-    css::uno::Reference< css::util::XModifyListener >       
m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 } //  namespace chart
diff --git a/chart2/source/inc/ModifyListenerHelper.hxx 
b/chart2/source/inc/ModifyListenerHelper.hxx
index 468779bcbaaa..0e479395ffb3 100644
--- a/chart2/source/inc/ModifyListenerHelper.hxx
+++ b/chart2/source/inc/ModifyListenerHelper.hxx
@@ -22,6 +22,7 @@
 #include <com/sun/star/util/XModifyBroadcaster.hpp>
 #include <cppuhelper/basemutex.hxx>
 #include <cppuhelper/compbase.hxx>
+#include <rtl/ref.hxx>
 
 #include <vector>
 #include <algorithm>
@@ -30,11 +31,9 @@
 namespace com::sun::star::uno { class XWeak; }
 namespace com::sun::star::uno { template <class interface_type> class 
WeakReference; }
 
-namespace chart::ModifyListenerHelper
+namespace chart
 {
 
-css::uno::Reference< css::util::XModifyListener > createModifyEventForwarder();
-
 /** This helper class serves as forwarder of modify events.  It can be used
     whenever an object has to send modify events after it gets a modify event 
of
     one of its children.
@@ -57,7 +56,6 @@ public:
     void RemoveListener(
         const css::uno::Reference< css::util::XModifyListener >& aListener );
 
-protected:
     // ____ XModifyBroadcaster ____
     virtual void SAL_CALL addModifyListener(
         const css::uno::Reference< css::util::XModifyListener >& aListener ) 
override;
@@ -68,6 +66,7 @@ protected:
     virtual void SAL_CALL modified(
         const css::lang::EventObject& aEvent ) override;
 
+protected:
     // ____ XEventListener (base of XModifyListener) ____
     virtual void SAL_CALL disposing(
         const css::lang::EventObject& Source ) override;
@@ -92,6 +91,11 @@ private:
     tListenerMap m_aListenerMap;
 };
 
+}
+
+namespace chart::ModifyListenerHelper
+{
+
 namespace impl
 {
 
diff --git a/chart2/source/model/inc/BaseCoordinateSystem.hxx 
b/chart2/source/model/inc/BaseCoordinateSystem.hxx
index 155da8f8a698..1afa0e290b5d 100644
--- a/chart2/source/model/inc/BaseCoordinateSystem.hxx
+++ b/chart2/source/model/inc/BaseCoordinateSystem.hxx
@@ -26,8 +26,7 @@
 #include <com/sun/star/chart2/XCoordinateSystem.hpp>
 #include <com/sun/star/chart2/XChartTypeContainer.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
+#include <ModifyListenerHelper.hxx>
 
 #include <vector>
 
@@ -111,7 +110,7 @@ protected:
     void fireModifyEvent();
 
 protected:
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 
 private:
     sal_Int32                                             m_nDimensionCount;
diff --git a/chart2/source/model/inc/DataSeries.hxx 
b/chart2/source/model/inc/DataSeries.hxx
index 7dc35ec474ec..eae00d7da153 100644
--- a/chart2/source/model/inc/DataSeries.hxx
+++ b/chart2/source/model/inc/DataSeries.hxx
@@ -24,14 +24,13 @@
 #include <com/sun/star/chart2/data/XDataSource.hpp>
 #include <com/sun/star/chart2/XRegressionCurveContainer.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 
 // helper classes
 #include <cppuhelper/basemutex.hxx>
 #include <cppuhelper/implbase.hxx>
 #include <comphelper/uno3.hxx>
+#include <ModifyListenerHelper.hxx>
 
 // STL
 #include <vector>
@@ -160,7 +159,7 @@ private:
         tRegressionCurveContainerType;
     tRegressionCurveContainerType m_aRegressionCurves;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 }  // namespace chart
diff --git a/chart2/source/model/inc/Diagram.hxx 
b/chart2/source/model/inc/Diagram.hxx
index 1ddeafcc3454..2fa8485f6a76 100644
--- a/chart2/source/model/inc/Diagram.hxx
+++ b/chart2/source/model/inc/Diagram.hxx
@@ -28,8 +28,7 @@
 #include <com/sun/star/chart/X3DDefaultSetter.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
+#include <ModifyListenerHelper.hxx>
 
 #include <vector>
 
@@ -174,7 +173,7 @@ private:
     css::uno::Reference< css::chart2::XColorScheme >
                         m_xColorScheme;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 } //  namespace chart
diff --git a/chart2/source/model/inc/StockBar.hxx 
b/chart2/source/model/inc/StockBar.hxx
index 8f5665ff128f..dd8160574fd2 100644
--- a/chart2/source/model/inc/StockBar.hxx
+++ b/chart2/source/model/inc/StockBar.hxx
@@ -19,13 +19,12 @@
 #pragma once
 
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
 #include <OPropertySet.hxx>
 
 #include <cppuhelper/basemutex.hxx>
 #include <cppuhelper/implbase.hxx>
 #include <comphelper/uno3.hxx>
+#include <ModifyListenerHelper.hxx>
 
 namespace chart
 {
@@ -84,7 +83,7 @@ private:
     virtual void firePropertyChangeEvent() override;
     using OPropertySet::disposing;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 } //  namespace chart
diff --git a/chart2/source/model/main/Axis.cxx 
b/chart2/source/model/main/Axis.cxx
index a39647e9181c..9bae79cf8adc 100644
--- a/chart2/source/model/main/Axis.cxx
+++ b/chart2/source/model/main/Axis.cxx
@@ -323,7 +323,7 @@ namespace chart
 
 Axis::Axis() :
         ::property::OPropertySet( m_aMutex ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder()),
+        m_xModifyEventForwarder( new ModifyEventForwarder() ),
         m_aScaleData( AxisHelper::createDefaultScale() ),
         m_xGrid( new GridProperties() )
 {
@@ -343,7 +343,7 @@ Axis::Axis() :
 Axis::Axis( const Axis & rOther ) :
         impl::Axis_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder()),
+    m_xModifyEventForwarder( new ModifyEventForwarder() ),
     m_aScaleData( rOther.m_aScaleData )
 {
     m_xGrid.set( CloneHelper::CreateRefClone< beans::XPropertySet >()( 
rOther.m_xGrid ));
@@ -526,28 +526,12 @@ Reference< util::XCloneable > SAL_CALL Axis::createClone()
 // ____ XModifyBroadcaster ____
 void SAL_CALL Axis::addModifyListener( const Reference< util::XModifyListener 
>& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception &)
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL Axis::removeModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/Axis.hxx 
b/chart2/source/model/main/Axis.hxx
index e42a704a0c5f..b85930a23456 100644
--- a/chart2/source/model/main/Axis.hxx
+++ b/chart2/source/model/main/Axis.hxx
@@ -27,8 +27,7 @@
 #include <com/sun/star/chart2/XAxis.hpp>
 #include <com/sun/star/chart2/XTitled.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
+#include <ModifyListenerHelper.hxx>
 
 namespace chart
 {
@@ -118,7 +117,7 @@ private:
 
     void AllocateSubGrids();
 
-    css::uno::Reference< css::util::XModifyListener >   
m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 
     css::chart2::ScaleData             m_aScaleData;
 
diff --git a/chart2/source/model/main/BaseCoordinateSystem.cxx 
b/chart2/source/model/main/BaseCoordinateSystem.cxx
index 94d9eef33e78..3729c32bd281 100644
--- a/chart2/source/model/main/BaseCoordinateSystem.cxx
+++ b/chart2/source/model/main/BaseCoordinateSystem.cxx
@@ -117,7 +117,7 @@ namespace chart
 BaseCoordinateSystem::BaseCoordinateSystem(
     sal_Int32 nDimensionCount /* = 2 */ ) :
         ::property::OPropertySet( m_aMutex ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder()),
+        m_xModifyEventForwarder( new ModifyEventForwarder() ),
         m_nDimensionCount( nDimensionCount )
  {
     m_aAllAxis.resize( m_nDimensionCount );
@@ -152,7 +152,7 @@ BaseCoordinateSystem::BaseCoordinateSystem(
     const BaseCoordinateSystem & rSource ) :
         impl::BaseCoordinateSystem_Base(rSource),
         ::property::OPropertySet( rSource, m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder()),
+    m_xModifyEventForwarder( new ModifyEventForwarder() ),
     m_nDimensionCount( rSource.m_nDimensionCount )
 {
     m_aAllAxis.resize(rSource.m_aAllAxis.size());
@@ -282,28 +282,12 @@ void SAL_CALL BaseCoordinateSystem::setChartTypes( const 
Sequence< Reference< ch
 // ____ XModifyBroadcaster ____
 void SAL_CALL BaseCoordinateSystem::addModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2" );
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL BaseCoordinateSystem::removeModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2" );
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/DataPoint.cxx 
b/chart2/source/model/main/DataPoint.cxx
index adde50ff466b..a5838c91f5d5 100644
--- a/chart2/source/model/main/DataPoint.cxx
+++ b/chart2/source/model/main/DataPoint.cxx
@@ -88,7 +88,7 @@ namespace chart
 DataPoint::DataPoint( const uno::Reference< beans::XPropertySet > & 
rParentProperties ) :
         ::property::OPropertySet( m_aMutex ),
         m_xParentProperties( rParentProperties ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder()),
+        m_xModifyEventForwarder( new ModifyEventForwarder() ),
         m_bNoParentPropAllowed( false )
 {
     SetNewValuesExplicitlyEvenIfTheyEqualDefault();
@@ -97,7 +97,7 @@ DataPoint::DataPoint( const uno::Reference< 
beans::XPropertySet > & rParentPrope
 DataPoint::DataPoint( const DataPoint & rOther ) :
         impl::DataPoint_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder()),
+        m_xModifyEventForwarder( new ModifyEventForwarder() ),
         m_bNoParentPropAllowed( true )
 {
     SetNewValuesExplicitlyEvenIfTheyEqualDefault();
@@ -221,28 +221,12 @@ Reference< beans::XPropertySetInfo > SAL_CALL 
DataPoint::getPropertySetInfo()
 // ____ XModifyBroadcaster ____
 void SAL_CALL DataPoint::addModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL DataPoint::removeModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/DataPoint.hxx 
b/chart2/source/model/main/DataPoint.hxx
index c8f923b2f171..52feb197d354 100644
--- a/chart2/source/model/main/DataPoint.hxx
+++ b/chart2/source/model/main/DataPoint.hxx
@@ -24,11 +24,10 @@
 #include <comphelper/uno3.hxx>
 #include <com/sun/star/container/XChild.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 
 #include <OPropertySet.hxx>
+#include <ModifyListenerHelper.hxx>
 
 namespace chart
 {
@@ -103,7 +102,7 @@ private:
 
     css::uno::WeakReference< css::beans::XPropertySet >   m_xParentProperties;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
     bool m_bNoParentPropAllowed;
 };
 
diff --git a/chart2/source/model/main/DataSeries.cxx 
b/chart2/source/model/main/DataSeries.cxx
index 70e8d5b565d4..d6aa5eebe3e9 100644
--- a/chart2/source/model/main/DataSeries.cxx
+++ b/chart2/source/model/main/DataSeries.cxx
@@ -128,14 +128,14 @@ namespace chart
 
 DataSeries::DataSeries() :
         ::property::OPropertySet( m_aMutex ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+        m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
 }
 
 DataSeries::DataSeries( const DataSeries & rOther ) :
         impl::DataSeries_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     if( ! rOther.m_aDataSequences.empty())
     {
@@ -477,28 +477,12 @@ void SAL_CALL DataSeries::setRegressionCurves(
 // ____ XModifyBroadcaster ____
 void SAL_CALL DataSeries::addModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL DataSeries::removeModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/Diagram.cxx 
b/chart2/source/model/main/Diagram.cxx
index 8fb6027c0d65..7e85f9353395 100644
--- a/chart2/source/model/main/Diagram.cxx
+++ b/chart2/source/model/main/Diagram.cxx
@@ -256,7 +256,7 @@ namespace chart
 Diagram::Diagram( uno::Reference< uno::XComponentContext > const & xContext ) :
         ::property::OPropertySet( m_aMutex ),
         m_xContext( xContext ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+        m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     // Set camera position to a default position (that should be set hard, so
     // that it will be exported.  The property default is a camera looking
@@ -271,7 +271,7 @@ Diagram::Diagram( const Diagram & rOther ) :
         impl::Diagram_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
     m_xContext( rOther.m_xContext ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     lcl_CloneCoordinateSystems( rOther.m_aCoordSystems, m_aCoordSystems );
     ModifyListenerHelper::addListenerToAllElements( m_aCoordSystems, 
m_xModifyEventForwarder );
@@ -519,28 +519,12 @@ Reference< util::XCloneable > SAL_CALL 
Diagram::createClone()
 // ____ XModifyBroadcaster ____
 void SAL_CALL Diagram::addModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL Diagram::removeModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/FormattedString.cxx 
b/chart2/source/model/main/FormattedString.cxx
index b4bcf51c05d8..a08375fc5cf4 100644
--- a/chart2/source/model/main/FormattedString.cxx
+++ b/chart2/source/model/main/FormattedString.cxx
@@ -99,7 +99,7 @@ FormattedString::FormattedString() :
         ::property::OPropertySet( m_aMutex ),
     
m_aType(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT),
     m_bDataLabelsRange(false),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {}
 
 FormattedString::FormattedString( const FormattedString & rOther ) :
@@ -109,7 +109,7 @@ FormattedString::FormattedString( const FormattedString & 
rOther ) :
     m_aType(rOther.m_aType),
     m_aGuid(rOther.m_aGuid),
     m_bDataLabelsRange(rOther.m_bDataLabelsRange),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {}
 
 FormattedString::~FormattedString()
@@ -209,28 +209,12 @@ void SAL_CALL FormattedString::setCellRange( const 
OUString& cellRange )
 // ____ XModifyBroadcaster ____
 void SAL_CALL FormattedString::addModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL FormattedString::removeModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/FormattedString.hxx 
b/chart2/source/model/main/FormattedString.hxx
index cb860d6d6ad3..878c300156b4 100644
--- a/chart2/source/model/main/FormattedString.hxx
+++ b/chart2/source/model/main/FormattedString.hxx
@@ -25,8 +25,7 @@
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/chart2/XDataPointCustomLabelField.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
+#include <ModifyListenerHelper.hxx>
 
 namespace chart
 {
@@ -134,7 +133,7 @@ private:
     OUString m_aCellRange;
     bool m_bDataLabelsRange;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 } //  namespace chart
diff --git a/chart2/source/model/main/GridProperties.cxx 
b/chart2/source/model/main/GridProperties.cxx
index 1f835d7f13a9..0cfeaaafe1e3 100644
--- a/chart2/source/model/main/GridProperties.cxx
+++ b/chart2/source/model/main/GridProperties.cxx
@@ -128,13 +128,13 @@ namespace chart
 
 GridProperties::GridProperties() :
         ::property::OPropertySet( m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {}
 
 GridProperties::GridProperties( const GridProperties & rOther ) :
         impl::GridProperties_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
 }
 
@@ -172,28 +172,12 @@ uno::Reference< util::XCloneable > SAL_CALL 
GridProperties::createClone()
 // ____ XModifyBroadcaster ____
 void SAL_CALL GridProperties::addModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL GridProperties::removeModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/GridProperties.hxx 
b/chart2/source/model/main/GridProperties.hxx
index 3a5d2b8c689a..43ab136c8332 100644
--- a/chart2/source/model/main/GridProperties.hxx
+++ b/chart2/source/model/main/GridProperties.hxx
@@ -23,8 +23,7 @@
 #include <comphelper/uno3.hxx>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
+#include <ModifyListenerHelper.hxx>
 
 #include <OPropertySet.hxx>
 
@@ -93,7 +92,7 @@ private:
     virtual void firePropertyChangeEvent() override;
     using OPropertySet::disposing;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 } //  namespace chart
diff --git a/chart2/source/model/main/Legend.cxx 
b/chart2/source/model/main/Legend.cxx
index e56453c70bc3..27eae67764ed 100644
--- a/chart2/source/model/main/Legend.cxx
+++ b/chart2/source/model/main/Legend.cxx
@@ -187,14 +187,14 @@ namespace chart
 
 Legend::Legend() :
         ::property::OPropertySet( m_aMutex ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+        m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
 }
 
 Legend::Legend( const Legend & rOther ) :
         impl::Legend_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
 }
 
@@ -211,28 +211,12 @@ Reference< util::XCloneable > SAL_CALL 
Legend::createClone()
 // ____ XModifyBroadcaster ____
 void SAL_CALL Legend::addModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL Legend::removeModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/Legend.hxx 
b/chart2/source/model/main/Legend.hxx
index 97cd72099b39..8748a4592393 100644
--- a/chart2/source/model/main/Legend.hxx
+++ b/chart2/source/model/main/Legend.hxx
@@ -25,8 +25,7 @@
 #include <com/sun/star/chart2/XLegend.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
+#include <ModifyListenerHelper.hxx>
 
 namespace chart
 {
@@ -95,7 +94,7 @@ private:
     virtual void firePropertyChangeEvent() override;
     using OPropertySet::disposing;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 } //  namespace chart
diff --git a/chart2/source/model/main/PageBackground.cxx 
b/chart2/source/model/main/PageBackground.cxx
index ae3e46692a0e..9f51469ca9cb 100644
--- a/chart2/source/model/main/PageBackground.cxx
+++ b/chart2/source/model/main/PageBackground.cxx
@@ -113,13 +113,13 @@ namespace chart
 
 PageBackground::PageBackground() :
     ::property::OPropertySet( m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {}
 
 PageBackground::PageBackground( const PageBackground & rOther ) :
         impl::PageBackground_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {}
 
 PageBackground::~PageBackground()
@@ -156,28 +156,12 @@ uno::Reference< beans::XPropertySetInfo > SAL_CALL 
PageBackground::getPropertySe
 // ____ XModifyBroadcaster ____
 void SAL_CALL PageBackground::addModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL PageBackground::removeModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/PageBackground.hxx 
b/chart2/source/model/main/PageBackground.hxx
index 9d813be60882..e8b340122301 100644
--- a/chart2/source/model/main/PageBackground.hxx
+++ b/chart2/source/model/main/PageBackground.hxx
@@ -20,13 +20,11 @@
 
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
 #include <OPropertySet.hxx>
 #include <cppuhelper/basemutex.hxx>
 #include <cppuhelper/implbase.hxx>
-
 #include <comphelper/uno3.hxx>
+#include <ModifyListenerHelper.hxx>
 
 namespace chart
 {
@@ -92,7 +90,7 @@ private:
     virtual void firePropertyChangeEvent() override;
     using OPropertySet::disposing;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 } //  namespace chart
diff --git a/chart2/source/model/main/StockBar.cxx 
b/chart2/source/model/main/StockBar.cxx
index 00e28e49f7aa..c93a9500e2d6 100644
--- a/chart2/source/model/main/StockBar.cxx
+++ b/chart2/source/model/main/StockBar.cxx
@@ -110,7 +110,7 @@ namespace chart
 
 StockBar::StockBar( bool bRisingCourse ) :
         ::property::OPropertySet( m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     if( ! bRisingCourse )
     {
@@ -126,7 +126,7 @@ StockBar::StockBar( bool bRisingCourse ) :
 StockBar::StockBar( const StockBar & rOther ) :
         impl::StockBar_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {}
 
 StockBar::~StockBar()
@@ -163,28 +163,12 @@ Reference< beans::XPropertySetInfo > SAL_CALL 
StockBar::getPropertySetInfo()
 // ____ XModifyBroadcaster ____
 void SAL_CALL StockBar::addModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL StockBar::removeModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/Title.cxx 
b/chart2/source/model/main/Title.cxx
index 1ce25dd2a419..35e3631077b1 100644
--- a/chart2/source/model/main/Title.cxx
+++ b/chart2/source/model/main/Title.cxx
@@ -229,13 +229,13 @@ namespace chart
 
 Title::Title() :
         ::property::OPropertySet( m_aMutex ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+        m_xModifyEventForwarder( new ModifyEventForwarder() )
 {}
 
 Title::Title( const Title & rOther ) :
         impl::Title_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+        m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     CloneHelper::CloneRefSequence<chart2::XFormattedString>(
         rOther.m_aStrings, m_aStrings );
@@ -307,28 +307,12 @@ uno::Reference< beans::XPropertySetInfo > SAL_CALL 
Title::getPropertySetInfo()
 // ____ XModifyBroadcaster ____
 void SAL_CALL Title::addModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL Title::removeModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/Title.hxx 
b/chart2/source/model/main/Title.hxx
index f3f76192a523..426fd5ef4219 100644
--- a/chart2/source/model/main/Title.hxx
+++ b/chart2/source/model/main/Title.hxx
@@ -25,8 +25,7 @@
 #include <com/sun/star/chart2/XTitle.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
+#include <ModifyListenerHelper.hxx>
 
 namespace chart
 {
@@ -103,7 +102,7 @@ private:
 
     css::uno::Sequence< css::uno::Reference< css::chart2::XFormattedString > > 
m_aStrings;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 } //  namespace chart
diff --git a/chart2/source/model/main/Wall.cxx 
b/chart2/source/model/main/Wall.cxx
index 8c23ab64f7b5..5588ed81e0a3 100644
--- a/chart2/source/model/main/Wall.cxx
+++ b/chart2/source/model/main/Wall.cxx
@@ -108,13 +108,13 @@ namespace chart
 
 Wall::Wall() :
         ::property::OPropertySet( m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {}
 
 Wall::Wall( const Wall & rOther ) :
         impl::Wall_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {}
 
 Wall::~Wall()
@@ -151,28 +151,12 @@ uno::Reference< beans::XPropertySetInfo > SAL_CALL 
Wall::getPropertySetInfo()
 // ____ XModifyBroadcaster ____
 void SAL_CALL Wall::addModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL Wall::removeModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/model/main/Wall.hxx 
b/chart2/source/model/main/Wall.hxx
index 276b1184f4c7..916be997bef5 100644
--- a/chart2/source/model/main/Wall.hxx
+++ b/chart2/source/model/main/Wall.hxx
@@ -19,13 +19,12 @@
 #pragma once
 
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
 #include <OPropertySet.hxx>
 
 #include <cppuhelper/basemutex.hxx>
 #include <cppuhelper/implbase.hxx>
 #include <comphelper/uno3.hxx>
+#include <ModifyListenerHelper.hxx>
 
 namespace chart
 {
@@ -87,7 +86,7 @@ private:
 
 private:
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 } //  namespace chart
diff --git a/chart2/source/model/template/ChartType.cxx 
b/chart2/source/model/template/ChartType.cxx
index b2764b31ce85..f734b1b55581 100644
--- a/chart2/source/model/template/ChartType.cxx
+++ b/chart2/source/model/template/ChartType.cxx
@@ -39,14 +39,14 @@ namespace chart
 
 ChartType::ChartType() :
         ::property::OPropertySet( m_aMutex ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder()),
+        m_xModifyEventForwarder( new ModifyEventForwarder() ),
         m_bNotifyChanges( true )
 {}
 
 ChartType::ChartType( const ChartType & rOther ) :
         impl::ChartType_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder()),
+    m_xModifyEventForwarder( new ModifyEventForwarder() ),
     m_bNotifyChanges( true )
 {
     {
diff --git a/chart2/source/tools/CachedDataSequence.cxx 
b/chart2/source/tools/CachedDataSequence.cxx
index 112f1be6e439..0ca95f9ebdf2 100644
--- a/chart2/source/tools/CachedDataSequence.cxx
+++ b/chart2/source/tools/CachedDataSequence.cxx
@@ -59,7 +59,7 @@ CachedDataSequence::CachedDataSequence()
         : OPropertyContainer( GetBroadcastHelper()),
           CachedDataSequence_Base( GetMutex()),
           m_eCurrentDataType( NUMERICAL ),
-          m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+          m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     registerProperties();
 }
@@ -67,7 +67,7 @@ CachedDataSequence::CachedDataSequence( const Reference< 
uno::XComponentContext
         : OPropertyContainer( GetBroadcastHelper()),
           CachedDataSequence_Base( GetMutex()),
           m_eCurrentDataType( MIXED ),
-          m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder( ))
+          m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     registerProperties();
 }
@@ -77,7 +77,7 @@ CachedDataSequence::CachedDataSequence( const OUString & 
rSingleText )
           CachedDataSequence_Base( GetMutex()),
           m_eCurrentDataType( TEXTUAL ),
           m_aTextualSequence({rSingleText}),
-          m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+          m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     registerProperties();
 }
@@ -88,7 +88,7 @@ CachedDataSequence::CachedDataSequence( const 
CachedDataSequence & rSource )
           m_nNumberFormatKey( rSource.m_nNumberFormatKey ),
           m_sRole( rSource.m_sRole ),
           m_eCurrentDataType( rSource.m_eCurrentDataType ),
-          m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+          m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     switch( m_eCurrentDataType )
     {
@@ -313,28 +313,12 @@ Reference< util::XCloneable > SAL_CALL 
CachedDataSequence::createClone()
 
 void SAL_CALL CachedDataSequence::addModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL CachedDataSequence::removeModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // lang::XInitialization:
diff --git a/chart2/source/tools/ErrorBar.cxx b/chart2/source/tools/ErrorBar.cxx
index 2c9b41044396..f55b0637dc8a 100644
--- a/chart2/source/tools/ErrorBar.cxx
+++ b/chart2/source/tools/ErrorBar.cxx
@@ -91,7 +91,7 @@ ErrorBar::ErrorBar() :
     mfNegativeError(0),
     mfWeight(1),
     meStyle(css::chart::ErrorBarStyle::NONE),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {}
 
 ErrorBar::ErrorBar( const ErrorBar & rOther ) :
@@ -109,7 +109,7 @@ ErrorBar::ErrorBar( const ErrorBar & rOther ) :
     mfNegativeError(rOther.mfNegativeError),
     mfWeight(rOther.mfWeight),
     meStyle(rOther.meStyle),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     if( ! rOther.m_aDataSequences.empty())
     {
@@ -401,28 +401,12 @@ void ErrorBar::removeVetoableChangeListener( const 
OUString&, const css::uno::Re
 // ____ XModifyBroadcaster ____
 void SAL_CALL ErrorBar::addModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL ErrorBar::removeModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/tools/LabeledDataSequence.cxx 
b/chart2/source/tools/LabeledDataSequence.cxx
index c3a896b22ff6..93680f4bbace 100644
--- a/chart2/source/tools/LabeledDataSequence.cxx
+++ b/chart2/source/tools/LabeledDataSequence.cxx
@@ -33,13 +33,13 @@ namespace chart
 {
 
 LabeledDataSequence::LabeledDataSequence() :
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+        m_xModifyEventForwarder( new ModifyEventForwarder() )
 {}
 
 LabeledDataSequence::LabeledDataSequence(
     const uno::Reference< chart2::data::XDataSequence > & rValues ) :
         m_xData( rValues ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+        m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     ModifyListenerHelper::addListener( m_xData, m_xModifyEventForwarder );
 }
@@ -49,7 +49,7 @@ LabeledDataSequence::LabeledDataSequence(
     const uno::Reference< chart2::data::XDataSequence > & rLabel ) :
         m_xData( rValues ),
         m_xLabel( rLabel ),
-        m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+        m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     ModifyListenerHelper::addListener( m_xData, m_xModifyEventForwarder );
     ModifyListenerHelper::addListener( m_xLabel, m_xModifyEventForwarder );
@@ -120,28 +120,12 @@ uno::Reference< util::XCloneable > SAL_CALL 
LabeledDataSequence::createClone()
 // ____ XModifyBroadcaster ____
 void SAL_CALL LabeledDataSequence::addModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL LabeledDataSequence::removeModifyListener( const Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 OUString SAL_CALL LabeledDataSequence::getImplementationName()
diff --git a/chart2/source/tools/ModifyListenerHelper.cxx 
b/chart2/source/tools/ModifyListenerHelper.cxx
index 3266af1d037e..90330907faba 100644
--- a/chart2/source/tools/ModifyListenerHelper.cxx
+++ b/chart2/source/tools/ModifyListenerHelper.cxx
@@ -78,14 +78,9 @@ private:
 
 } //  anonymous namespace
 
-namespace chart::ModifyListenerHelper
+namespace chart
 {
 
-uno::Reference< util::XModifyListener > createModifyEventForwarder()
-{
-    return new ModifyEventForwarder();
-}
-
 ModifyEventForwarder::ModifyEventForwarder() :
         ::cppu::WeakComponentImplHelper<
         css::util::XModifyBroadcaster,
diff --git a/chart2/source/tools/RegressionCurveModel.cxx 
b/chart2/source/tools/RegressionCurveModel.cxx
index ff6b0332e1c8..d6cef7c2c8d8 100644
--- a/chart2/source/tools/RegressionCurveModel.cxx
+++ b/chart2/source/tools/RegressionCurveModel.cxx
@@ -141,7 +141,7 @@ namespace chart
 RegressionCurveModel::RegressionCurveModel( tCurveType eCurveType ) :
     ::property::OPropertySet( m_aMutex ),
     m_eRegressionCurveType( eCurveType ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder()),
+    m_xModifyEventForwarder( new ModifyEventForwarder() ),
     m_xEquationProperties( new RegressionEquation )
 {
     // set 0 line width (default) hard, so that it is always written to XML,
@@ -155,7 +155,7 @@ RegressionCurveModel::RegressionCurveModel( const 
RegressionCurveModel & rOther
     impl::RegressionCurveModel_Base(rOther),
     ::property::OPropertySet( rOther, m_aMutex ),
     m_eRegressionCurveType( rOther.m_eRegressionCurveType ),
-    m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     m_xEquationProperties.set( CloneHelper::CreateRefClone< 
beans::XPropertySet >()( rOther.m_xEquationProperties ));
     ModifyListenerHelper::addListener( m_xEquationProperties, 
m_xModifyEventForwarder );
@@ -216,28 +216,12 @@ OUString SAL_CALL RegressionCurveModel::getServiceName()
 // ____ XModifyBroadcaster ____
 void SAL_CALL RegressionCurveModel::addModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL RegressionCurveModel::removeModifyListener( const 
uno::Reference< util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/tools/RegressionCurveModel.hxx 
b/chart2/source/tools/RegressionCurveModel.hxx
index cd42851662f2..73c2439f01e7 100644
--- a/chart2/source/tools/RegressionCurveModel.hxx
+++ b/chart2/source/tools/RegressionCurveModel.hxx
@@ -29,8 +29,7 @@
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/lang/XServiceName.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
+#include <ModifyListenerHelper.hxx>
 
 namespace chart
 {
@@ -117,7 +116,7 @@ protected:
 private:
     const tCurveType    m_eRegressionCurveType;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
     css::uno::Reference< css::beans::XPropertySet > m_xEquationProperties;
 };
 
diff --git a/chart2/source/tools/RegressionEquation.cxx 
b/chart2/source/tools/RegressionEquation.cxx
index 18739ec56257..637a1d7c6774 100644
--- a/chart2/source/tools/RegressionEquation.cxx
+++ b/chart2/source/tools/RegressionEquation.cxx
@@ -166,13 +166,13 @@ namespace chart
 
 RegressionEquation::RegressionEquation() :
         ::property::OPropertySet( m_aMutex ),
-        m_xModifyEventForwarder( new 
ModifyListenerHelper::ModifyEventForwarder())
+        m_xModifyEventForwarder( new ModifyEventForwarder())
 {}
 
 RegressionEquation::RegressionEquation( const RegressionEquation & rOther ) :
         impl::RegressionEquation_Base(rOther),
         ::property::OPropertySet( rOther, m_aMutex ),
-    m_xModifyEventForwarder( new ModifyListenerHelper::ModifyEventForwarder())
+    m_xModifyEventForwarder( new ModifyEventForwarder())
 {}
 
 RegressionEquation::~RegressionEquation()
@@ -209,28 +209,12 @@ Reference< beans::XPropertySetInfo > SAL_CALL 
RegressionEquation::getPropertySet
 // ____ XModifyBroadcaster ____
 void SAL_CALL RegressionEquation::addModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->addModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->addModifyListener( aListener );
 }
 
 void SAL_CALL RegressionEquation::removeModifyListener( const uno::Reference< 
util::XModifyListener >& aListener )
 {
-    try
-    {
-        uno::Reference< util::XModifyBroadcaster > xBroadcaster( 
m_xModifyEventForwarder, uno::UNO_QUERY_THROW );
-        xBroadcaster->removeModifyListener( aListener );
-    }
-    catch( const uno::Exception & )
-    {
-        DBG_UNHANDLED_EXCEPTION("chart2");
-    }
+    m_xModifyEventForwarder->removeModifyListener( aListener );
 }
 
 // ____ XModifyListener ____
diff --git a/chart2/source/tools/RegressionEquation.hxx 
b/chart2/source/tools/RegressionEquation.hxx
index 69d550f3c561..9c26a6ad9d0f 100644
--- a/chart2/source/tools/RegressionEquation.hxx
+++ b/chart2/source/tools/RegressionEquation.hxx
@@ -20,8 +20,6 @@
 
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
 #include <com/sun/star/chart2/XTitle.hpp>
 
 #include <OPropertySet.hxx>
@@ -29,6 +27,7 @@
 #include <cppuhelper/basemutex.hxx>
 #include <cppuhelper/implbase.hxx>
 #include <comphelper/uno3.hxx>
+#include <ModifyListenerHelper.hxx>
 
 namespace chart
 {
@@ -111,7 +110,7 @@ private:
 
     css::uno::Sequence< css::uno::Reference< css::chart2::XFormattedString > > 
m_aStrings;
 
-    css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder;
+    rtl::Reference<ModifyEventForwarder> m_xModifyEventForwarder;
 };
 
 } //  namespace chart
diff --git a/chart2/source/tools/UncachedDataSequence.cxx 
b/chart2/source/tools/UncachedDataSequence.cxx
index 4a7a869dfe7c..343cf5092346 100644
--- a/chart2/source/tools/UncachedDataSequence.cxx
+++ b/chart2/source/tools/UncachedDataSequence.cxx
@@ -62,7 +62,7 @@ UncachedDataSequence::UncachedDataSequence(
           m_nNumberFormatKey(0),
           m_xDataProvider( xIntDataProv ),
           m_aSourceRepresentation( rRangeRepresentation ),
-          m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+          m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     registerProperties();
 }
@@ -76,7 +76,7 @@ UncachedDataSequence::UncachedDataSequence(
           m_nNumberFormatKey(0),
           m_xDataProvider( xIntDataProv ),
           m_aSourceRepresentation( rRangeRepresentation ),
-          m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+          m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     registerProperties();
     setFastPropertyValue_NoBroadcast( PROP_PROPOSED_ROLE, uno::Any( rRole ));
@@ -89,7 +89,7 @@ UncachedDataSequence::UncachedDataSequence( const 
UncachedDataSequence & rSource
           m_sRole( rSource.m_sRole ),
           m_xDataProvider( rSource.m_xDataProvider ),
           m_aSourceRepresentation( rSource.m_aSourceRepresentation ),
-          m_xModifyEventForwarder( 
ModifyListenerHelper::createModifyEventForwarder())
+          m_xModifyEventForwarder( new ModifyEventForwarder() )
 {
     registerProperties();
 }

Reply via email to