basctl/source/basicide/basicmod.hxx | 2 include/sfx2/module.hxx | 7 -- sc/source/ui/app/scmod.cxx | 2 sd/source/ui/app/sdmod.cxx | 2 sfx2/source/appl/module.cxx | 105 ++++++++++-------------------------- starmath/source/smmod.cxx | 2 sw/source/uibase/app/swmodule.cxx | 2 7 files changed, 38 insertions(+), 84 deletions(-)
New commits: commit e319ef1171dab61fff2201f5c1470ca09894c395 Author: Mark Page <aptit...@btconnect.com> Date: Fri Jun 3 11:16:49 2016 +0100 Simplify sfx2 removing SfxModuleArr_Impl and dummy SfxModule flag The SfxModuleArr_Impl is a static container of SfxModule, since this is private to the SfxModule class it does not require wrapping. The bDummy flag is unused, and complicates the class Change-Id: Ib03b215543a0c37d4edf20b2d0fc141a783e115e Reviewed-on: https://gerrit.libreoffice.org/25859 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noelgran...@gmail.com> diff --git a/basctl/source/basicide/basicmod.hxx b/basctl/source/basicide/basicmod.hxx index f462927..b52a1c7 100644 --- a/basctl/source/basicide/basicmod.hxx +++ b/basctl/source/basicide/basicmod.hxx @@ -31,7 +31,7 @@ class Module : public SfxModule static Module* mpModule; public: Module ( ResMgr *pMgr, SfxObjectFactory *pObjFact) : - SfxModule( pMgr, false, pObjFact, nullptr ) + SfxModule( pMgr, pObjFact, nullptr ) { } public: static Module*& Get () { return mpModule; } diff --git a/include/sfx2/module.hxx b/include/sfx2/module.hxx index 6e10d7c..7871675 100644 --- a/include/sfx2/module.hxx +++ b/include/sfx2/module.hxx @@ -35,7 +35,6 @@ class SfxObjectFactory; class ModalDialog; class SfxObjectFactory; class SfxModule; -class SfxModuleArr_Impl; class SfxModule_Impl; class SfxSlotPool; struct SfxChildWinContextFactory; @@ -54,7 +53,6 @@ class SFX2_DLLPUBLIC SfxModule : public SfxShell { private: ResMgr* pResMgr; - bool bDummy : 1; SfxModule_Impl* pImpl; SAL_DLLPRIVATE void Construct_Impl(); @@ -68,8 +66,7 @@ private: public: - SfxModule( ResMgr* pMgrP, bool bDummy, - SfxObjectFactory* pFactoryP, ... ); + SfxModule( ResMgr* pMgrP, SfxObjectFactory* pFactoryP, ... ); virtual ~SfxModule(); ResMgr* GetResMgr(); @@ -96,7 +93,7 @@ public: static FieldUnit GetModuleFieldUnit( css::uno::Reference< css::frame::XFrame > const & i_frame ); FieldUnit GetFieldUnit() const; - SAL_DLLPRIVATE static SfxModuleArr_Impl& GetModules_Impl(); + SAL_DLLPRIVATE static std::vector<SfxModule*>& GetModules_Impl(); SAL_DLLPRIVATE static void DestroyModules_Impl(); SAL_DLLPRIVATE SfxTbxCtrlFactArr_Impl* GetTbxCtrlFactories_Impl() const; SAL_DLLPRIVATE SfxStbCtrlFactArr_Impl* GetStbCtrlFactories_Impl() const; diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx index 359fb23..c45480f 100644 --- a/sc/source/ui/app/scmod.cxx +++ b/sc/source/ui/app/scmod.cxx @@ -130,7 +130,7 @@ void ScModule::InitInterface_Impl() } ScModule::ScModule( SfxObjectFactory* pFact ) : - SfxModule( ResMgr::CreateResMgr( "sc" ), false, pFact, nullptr ), + SfxModule( ResMgr::CreateResMgr( "sc" ), pFact, nullptr ), aIdleTimer("sc ScModule IdleTimer"), aSpellIdle("sc ScModule SpellIdle"), mpDragData(new ScDragData), diff --git a/sd/source/ui/app/sdmod.cxx b/sd/source/ui/app/sdmod.cxx index 59f62db..9b54068 100644 --- a/sd/source/ui/app/sdmod.cxx +++ b/sd/source/ui/app/sdmod.cxx @@ -67,7 +67,7 @@ void SdModule::InitInterface_Impl() // Ctor SdModule::SdModule(SfxObjectFactory* pFact1, SfxObjectFactory* pFact2 ) -: SfxModule( ResMgr::CreateResMgr("sd"), false, +: SfxModule( ResMgr::CreateResMgr("sd"), pFact1, pFact2, nullptr ), pTransferClip(nullptr), pTransferDrag(nullptr), diff --git a/sfx2/source/appl/module.cxx b/sfx2/source/appl/module.cxx index 2cedda8..bb1730d 100644 --- a/sfx2/source/appl/module.cxx +++ b/sfx2/source/appl/module.cxx @@ -42,41 +42,7 @@ #include "childwinimpl.hxx" #include <ctrlfactoryimpl.hxx> -class SfxModuleArr_Impl -{ - typedef ::std::vector<SfxModule*> DataType; - DataType maData; -public: - - typedef DataType::iterator iterator; - - iterator begin() - { - return maData.begin(); - } - - void erase( const iterator& it ) - { - maData.erase(it); - } - - SfxModule* operator[] ( size_t i ) - { - return maData[i]; - } - - void push_back( SfxModule* p ) - { - maData.push_back(p); - } - - size_t size() const - { - return maData.size(); - } -}; - -static SfxModuleArr_Impl* pModules=nullptr; +static std::vector<SfxModule*>* pModules=nullptr; class SfxModule_Impl { @@ -136,9 +102,8 @@ ResMgr* SfxModule::GetResMgr() return pResMgr; } -SfxModule::SfxModule( ResMgr* pMgrP, bool bDummyP, - SfxObjectFactory* pFactoryP, ... ) - : pResMgr( pMgrP ), bDummy( bDummyP ), pImpl(nullptr) +SfxModule::SfxModule( ResMgr* pMgrP, SfxObjectFactory* pFactoryP, ... ) + : pResMgr( pMgrP ), pImpl(nullptr) { Construct_Impl(); va_list pVarArgs; @@ -151,49 +116,42 @@ SfxModule::SfxModule( ResMgr* pMgrP, bool bDummyP, void SfxModule::Construct_Impl() { - if( !bDummy ) - { - SfxApplication *pApp = SfxGetpApp(); - SfxModuleArr_Impl& rArr = GetModules_Impl(); - SfxModule* pPtr = this; - rArr.push_back( pPtr ); - pImpl = new SfxModule_Impl; - pImpl->pSlotPool = new SfxSlotPool(&pApp->GetAppSlotPool_Impl()); - - pImpl->pTbxCtrlFac=nullptr; - pImpl->pStbCtrlFac=nullptr; - pImpl->pFactArr=nullptr; - pImpl->pImgListSmall=nullptr; - pImpl->pImgListBig=nullptr; - - SetPool( &pApp->GetPool() ); - } + SfxApplication *pApp = SfxGetpApp(); + std::vector<SfxModule*> &rArr = GetModules_Impl(); + rArr.push_back( this ); + pImpl = new SfxModule_Impl; + pImpl->pSlotPool = new SfxSlotPool(&pApp->GetAppSlotPool_Impl()); + + pImpl->pTbxCtrlFac=nullptr; + pImpl->pStbCtrlFac=nullptr; + pImpl->pFactArr=nullptr; + pImpl->pImgListSmall=nullptr; + pImpl->pImgListBig=nullptr; + + SetPool( &pApp->GetPool() ); } SfxModule::~SfxModule() { - if( !bDummy ) + if ( SfxGetpApp()->Get_Impl() ) { - if ( SfxGetpApp()->Get_Impl() ) + // The module will be destroyed before the Deinitialize, + // so remove from the array + std::vector<SfxModule*>& rArr = GetModules_Impl(); + for( sal_uInt16 nPos = rArr.size(); nPos--; ) { - // The module will be destroyed before the Deinitialize, - // so remove from the array - SfxModuleArr_Impl& rArr = GetModules_Impl(); - for( sal_uInt16 nPos = rArr.size(); nPos--; ) + if( rArr[ nPos ] == this ) { - if( rArr[ nPos ] == this ) - { - rArr.erase( rArr.begin() + nPos ); - break; - } + rArr.erase( rArr.begin() + nPos ); + break; } - - delete pImpl; } - delete pResMgr; } + + delete pImpl; + delete pResMgr; } @@ -292,10 +250,10 @@ VclPtr<SfxTabPage> SfxModule::CreateTabPage( sal_uInt16, vcl::Window*, const Sfx return VclPtr<SfxTabPage>(); } -SfxModuleArr_Impl& SfxModule::GetModules_Impl() +std::vector<SfxModule*>& SfxModule::GetModules_Impl() { if( !pModules ) - pModules = new SfxModuleArr_Impl; + pModules = new std::vector<SfxModule*>; return *pModules; }; @@ -303,10 +261,9 @@ void SfxModule::DestroyModules_Impl() { if ( pModules ) { - SfxModuleArr_Impl& rModules = *pModules; - for( sal_uInt16 nPos = rModules.size(); nPos--; ) + for( sal_uInt16 nPos = pModules->size(); nPos--; ) { - SfxModule* pMod = rModules[nPos]; + SfxModule* pMod = (*pModules)[nPos]; delete pMod; } delete pModules; diff --git a/starmath/source/smmod.cxx b/starmath/source/smmod.cxx index 1d8fa98..02a4526 100644 --- a/starmath/source/smmod.cxx +++ b/starmath/source/smmod.cxx @@ -159,7 +159,7 @@ void SmModule::InitInterface_Impl() } SmModule::SmModule(SfxObjectFactory* pObjFact) : - SfxModule(ResMgr::CreateResMgr("sm"), false, pObjFact, nullptr) + SfxModule(ResMgr::CreateResMgr("sm"), pObjFact, nullptr) { SetName("StarMath"); diff --git a/sw/source/uibase/app/swmodule.cxx b/sw/source/uibase/app/swmodule.cxx index eae1553..3ab2832 100644 --- a/sw/source/uibase/app/swmodule.cxx +++ b/sw/source/uibase/app/swmodule.cxx @@ -140,7 +140,7 @@ using namespace ::com::sun::star::uno; SwModule::SwModule( SfxObjectFactory* pWebFact, SfxObjectFactory* pFact, SfxObjectFactory* pGlobalFact ) - : SfxModule( ResMgr::CreateResMgr( "sw" ), false, pWebFact, + : SfxModule( ResMgr::CreateResMgr( "sw" ), pWebFact, pFact, pGlobalFact, nullptr ), m_pModuleConfig(nullptr), m_pUsrPref(nullptr), _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits