diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-01-23 13:54:16 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-01-24 07:03:11 +0200 |
commit | 8d611dcc31ee851ddd0a3f96f1fe202ee7bb9eb2 (patch) | |
tree | bec429d8d05c13194b82d87efb35de448c569334 /chart2/source/model | |
parent | 12643f416102c868309ba8d082ea91726045f0d1 (diff) |
use rtl::Reference in ChartModel
instead of storing both a raw pointer and an uno::Reference
Change-Id: I86846c2c756255eb5627a4b1e5144c41865db895
Diffstat (limited to 'chart2/source/model')
-rw-r--r-- | chart2/source/model/main/ChartModel.cxx | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx index 72e61517680d..65717729a221 100644 --- a/chart2/source/model/main/ChartModel.cxx +++ b/chart2/source/model/main/ChartModel.cxx @@ -95,7 +95,6 @@ ChartModel::ChartModel(uno::Reference<uno::XComponentContext > const & xContext) , m_nInLoad(0) , m_bUpdateNotificationsPending(false) , mbTimeBased(false) - , mpChartView(nullptr) , m_pUndoManager( nullptr ) , m_aControllers( m_aModelMutex ) , m_nControllerLockCount(0) @@ -136,7 +135,6 @@ ChartModel::ChartModel( const ChartModel & rOther ) , m_nInLoad(0) , m_bUpdateNotificationsPending(false) , mbTimeBased(rOther.mbTimeBased) - , mpChartView(nullptr) , m_aResource( rOther.m_aResource ) , m_aMediaDescriptor( rOther.m_aMediaDescriptor ) , m_aControllers( m_aModelMutex ) @@ -205,6 +203,11 @@ void SAL_CALL ChartModel::initialize( const Sequence< Any >& /*rArguments*/ ) //support argument "DocumentRecoverySupport"? } +css::uno::Reference< css::uno::XInterface > ChartModel::getChartView() const +{ + return static_cast< ::cppu::OWeakObject* >( mxChartView.get() ); +} + // private methods OUString ChartModel::impl_g_getLocation() @@ -1220,12 +1223,11 @@ Reference< uno::XInterface > SAL_CALL ChartModel::createInstance( const OUString case SERVICE_TRANSP_GRADIENT_TABLE: case SERVICE_MARKER_TABLE: { - if(!mpChartView) + if(!mxChartView.is()) { - mpChartView = new ChartView( m_xContext, *this); - xChartView = static_cast< ::cppu::OWeakObject* >( mpChartView ); + mxChartView = new ChartView( m_xContext, *this); } - return mpChartView->createInstance( rServiceSpecifier ); + return mxChartView->createInstance( rServiceSpecifier ); } break; case SERVICE_NAMESPACE_MAP: @@ -1234,13 +1236,12 @@ Reference< uno::XInterface > SAL_CALL ChartModel::createInstance( const OUString } else if(rServiceSpecifier == CHART_VIEW_SERVICE_NAME) { - if(!mpChartView) + if(!mxChartView.is()) { - mpChartView = new ChartView( m_xContext, *this); - xChartView = static_cast< ::cppu::OWeakObject* >( mpChartView ); + mxChartView = new ChartView( m_xContext, *this); } - return static_cast< ::cppu::OWeakObject* >( mpChartView ); + return static_cast< ::cppu::OWeakObject* >( mxChartView.get() ); } else { @@ -1424,17 +1425,13 @@ void ChartModel::setWindow( const sal_uInt64 nWindowPtr ) void ChartModel::update() throw (uno::RuntimeException, std::exception) { - if(!mpChartView) - { - mpChartView = new ChartView( m_xContext, *this); - xChartView = static_cast< ::cppu::OWeakObject* >( mpChartView ); - } - if(mpChartView) + if(!mxChartView.is()) { - mpChartView->setViewDirty(); - mpChartView->update(); - mpChartView->updateOpenGLWindow(); + mxChartView = new ChartView( m_xContext, *this); } + mxChartView->setViewDirty(); + mxChartView->update(); + mxChartView->updateOpenGLWindow(); } } // namespace chart |