summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-05-17 21:11:38 +0100
committerCaolán McNamara <caolanm@redhat.com>2011-05-20 15:23:08 +0100
commitc4bf0bd8e9f47096dba1b7108d264742057b72fd (patch)
tree620de48c369da7e789cf57eb29a94965940d7116
parent254c2fca2d8c439774dad9c0e8667eb92811ca7e (diff)
use non-leaky singleton pattern
-rw-r--r--sfx2/source/appl/appinit.cxx3
-rw-r--r--sfx2/source/appl/sfxpicklist.cxx22
-rw-r--r--sfx2/source/inc/sfxpicklist.hxx2
3 files changed, 2 insertions, 25 deletions
diff --git a/sfx2/source/appl/appinit.cxx b/sfx2/source/appl/appinit.cxx
index 19e53c242e..3b65327c7a 100644
--- a/sfx2/source/appl/appinit.cxx
+++ b/sfx2/source/appl/appinit.cxx
@@ -264,9 +264,6 @@ bool SfxApplication::Initialize_Impl()
pAppData_Impl->m_pSbxErrorHdl = new SfxErrorHandler(
RID_BASIC_START, ERRCODE_AREA_SBX, ERRCODE_AREA_SBX_END );
- // diverse Pointer
- SfxPickList::GetOrCreate( SvtHistoryOptions().GetSize( ePICKLIST ) );
-
DBG_ASSERT( !pAppData_Impl->pAppDispat, "AppDispatcher already exists" );
pAppData_Impl->pAppDispat = new SfxDispatcher((SfxDispatcher*)0);
pAppData_Impl->pSlotPool = new SfxSlotPool;
diff --git a/sfx2/source/appl/sfxpicklist.cxx b/sfx2/source/appl/sfxpicklist.cxx
index 7b43139475..d633b990e6 100644
--- a/sfx2/source/appl/sfxpicklist.cxx
+++ b/sfx2/source/appl/sfxpicklist.cxx
@@ -170,28 +170,10 @@ SfxPickList::PickListEntry* SfxPickList::GetPickListEntry( sal_uInt32 nIndex )
return 0;
}
-SfxPickList& SfxPickList::GetOrCreate( const sal_uInt32 nMenuSize )
-{
- if ( !pUniqueInstance )
- {
- ::osl::MutexGuard aGuard( thePickListMutex::get() );
- if ( !pUniqueInstance )
- pUniqueInstance = new SfxPickList( nMenuSize );
- }
-
- return *pUniqueInstance;
-}
-
SfxPickList& SfxPickList::Get()
{
- ::osl::MutexGuard aGuard( thePickListMutex::get() );
- return *pUniqueInstance;
-}
-
-void SfxPickList::Delete()
-{
- ::osl::MutexGuard aGuard( thePickListMutex::get() );
- DELETEZ( pUniqueInstance );
+ static SfxPickList aUniqueInstance(SvtHistoryOptions().GetSize(ePICKLIST));
+ return aUniqueInstance;
}
SfxPickList::SfxPickList( sal_uInt32 nAllowedMenuSize ) :
diff --git a/sfx2/source/inc/sfxpicklist.hxx b/sfx2/source/inc/sfxpicklist.hxx
index 987e1b9502..af99e1fbc1 100644
--- a/sfx2/source/inc/sfxpicklist.hxx
+++ b/sfx2/source/inc/sfxpicklist.hxx
@@ -67,9 +67,7 @@ class SfxPickList : public SfxListener
void RemovePickListEntries();
public:
- static SfxPickList& GetOrCreate( const sal_uInt32 nMenuSize );
static SfxPickList& Get();
- static void Delete();
sal_uInt32 GetAllowedMenuSize() { return m_nAllowedMenuSize; }
sal_uInt32 GetNumOfEntries() const { return m_aPicklistVector.size(); }