chart2/source/view/main/ChartItemPool.cxx | 15 ++++----------- chart2/source/view/main/ChartItemPool.hxx | 1 - svx/source/svdraw/svdattr.cxx | 17 ----------------- svx/source/xoutdev/xpool.cxx | 18 ++---------------- 4 files changed, 6 insertions(+), 45 deletions(-)
New commits: commit 4d0b71be75804dd2b008d3da932d620893fbd780 Author: Jochen Nitschke <j.nitschke+loger...@ok.de> Date: Sat Sep 3 16:17:41 2016 +0200 remove reimplementations of SfxItemPool::ReleaseDefaults() use method from base class SfxItemPool to release and remove the static pool of default items. SdrItemPool is child of XOutdevItemPool using the same static pool, no need for own code in dtor. ~SfxItemPool has a Delete() call too but with conditions. leave child's unconditional Delete() for now. Change-Id: Ife4e6398b7b0fa69483bc3c795719778c5efcc51 Reviewed-on: https://gerrit.libreoffice.org/28632 Reviewed-by: Jochen Nitschke <j.nitschke+loger...@ok.de> Tested-by: Jochen Nitschke <j.nitschke+loger...@ok.de> diff --git a/chart2/source/view/main/ChartItemPool.cxx b/chart2/source/view/main/ChartItemPool.cxx index 1c55877..7ec565c 100644 --- a/chart2/source/view/main/ChartItemPool.cxx +++ b/chart2/source/view/main/ChartItemPool.cxx @@ -42,7 +42,7 @@ ChartItemPool::ChartItemPool(): /************************************************************************** * PoolDefaults **************************************************************************/ - ppPoolDefaults = new SfxPoolItem*[SCHATTR_END - SCHATTR_START + 1]; + SfxPoolItem** ppPoolDefaults = new SfxPoolItem*[SCHATTR_END - SCHATTR_START + 1]; ppPoolDefaults[SCHATTR_DATADESCR_SHOW_NUMBER - SCHATTR_START] = new SfxBoolItem(SCHATTR_DATADESCR_SHOW_NUMBER); ppPoolDefaults[SCHATTR_DATADESCR_SHOW_PERCENTAGE- SCHATTR_START] = new SfxBoolItem(SCHATTR_DATADESCR_SHOW_PERCENTAGE); @@ -183,24 +183,17 @@ ChartItemPool::ChartItemPool(): } ChartItemPool::ChartItemPool(const ChartItemPool& rPool): - SfxItemPool(rPool), ppPoolDefaults(nullptr), pItemInfos(nullptr) + SfxItemPool(rPool), pItemInfos(nullptr) { } ChartItemPool::~ChartItemPool() { Delete(); + // release and delete static pool default items + ReleaseDefaults(true); delete[] pItemInfos; - - const sal_uInt16 nMax = SCHATTR_END - SCHATTR_START + 1; - for( sal_uInt16 i=0; i<nMax; ++i ) - { - SetRefCount(*ppPoolDefaults[i], 0); - delete ppPoolDefaults[i]; - } - - delete[] ppPoolDefaults; } SfxItemPool* ChartItemPool::Clone() const diff --git a/chart2/source/view/main/ChartItemPool.hxx b/chart2/source/view/main/ChartItemPool.hxx index 5740fcd..dded9d9 100644 --- a/chart2/source/view/main/ChartItemPool.hxx +++ b/chart2/source/view/main/ChartItemPool.hxx @@ -27,7 +27,6 @@ namespace chart class ChartItemPool : public SfxItemPool { private: - SfxPoolItem** ppPoolDefaults; SfxItemInfo* pItemInfos; public: diff --git a/svx/source/svdraw/svdattr.cxx b/svx/source/svdraw/svdattr.cxx index 4b3eba9..492d84a 100644 --- a/svx/source/svdraw/svdattr.cxx +++ b/svx/source/svdraw/svdattr.cxx @@ -352,23 +352,6 @@ SfxItemPool* SdrItemPool::Clone() const SdrItemPool::~SdrItemPool() { - // dtor of SfxItemPool - Delete(); - - // clear own static Defaults - if(mppLocalPoolDefaults) - { - const sal_uInt16 nBeg(SDRATTR_SHADOW_FIRST - SDRATTR_START); - const sal_uInt16 nEnd2(SDRATTR_END - SDRATTR_START); - - for(sal_uInt16 i(nBeg); i <= nEnd2; i++) - { - SetRefCount(*mppLocalPoolDefaults[i],0); - delete mppLocalPoolDefaults[i]; - mppLocalPoolDefaults[i] = nullptr; - } - } - // split pools before destroying SetSecondaryPool(nullptr); } diff --git a/svx/source/xoutdev/xpool.cxx b/svx/source/xoutdev/xpool.cxx index fc6a3ff..476e2ab 100644 --- a/svx/source/xoutdev/xpool.cxx +++ b/svx/source/xoutdev/xpool.cxx @@ -180,22 +180,8 @@ SfxItemPool* XOutdevItemPool::Clone() const XOutdevItemPool::~XOutdevItemPool() { Delete(); - - // remove own static defaults - if(mppLocalPoolDefaults) - { - SfxPoolItem** ppDefaultItem = mppLocalPoolDefaults; - for(sal_uInt16 i(GetLastWhich() - GetFirstWhich() + 1); i; --i, ++ppDefaultItem) - { - if ( *ppDefaultItem ) // these parts might be already cleaned up from a derived class - { - SetRefCount( **ppDefaultItem, 0 ); - delete *ppDefaultItem; - } - } - - delete[] mppLocalPoolDefaults; - } + // release and delete static pool default items + ReleaseDefaults(true); if(mpLocalItemInfos) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits