diff options
-rw-r--r-- | svl/inc/svl/style.hxx | 1 | ||||
-rw-r--r-- | svl/source/items/style.cxx | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/svl/inc/svl/style.hxx b/svl/inc/svl/style.hxx index c948c58043ce..ceb8050f31c8 100644 --- a/svl/inc/svl/style.hxx +++ b/svl/inc/svl/style.hxx @@ -100,6 +100,7 @@ protected: sal_Bool bMySet; // sal_True: Set loeschen im dtor + SfxStyleSheetBase(); // do not use! SfxStyleSheetBase( const UniString&, SfxStyleSheetBasePool&, SfxStyleFamily eFam, sal_uInt16 mask ); SfxStyleSheetBase( const SfxStyleSheetBase& ); virtual ~SfxStyleSheetBase(); diff --git a/svl/source/items/style.cxx b/svl/source/items/style.cxx index 595ed7b41ae8..2a1929e78fb0 100644 --- a/svl/source/items/style.cxx +++ b/svl/source/items/style.cxx @@ -154,6 +154,25 @@ SfxStyleSheetBase::SfxStyleSheetBase( const SfxStyleSheetBase& r ) pSet = NULL; } +static SfxStyleSheetBasePool& implGetStaticPool() +{ + static SfxStyleSheetBasePool* pSheetPool = 0; + static SfxItemPool* pBasePool = 0; + if( !pSheetPool ) + { + UniString aName; + pBasePool = new SfxItemPool( aName, 0, 0, 0 ); + pSheetPool = new SfxStyleSheetBasePool(*pBasePool); + } + return *pSheetPool; +} + +SfxStyleSheetBase::SfxStyleSheetBase() +: comphelper::OWeakTypeObject() +, rPool( implGetStaticPool() ) +{ +} + SfxStyleSheetBase::~SfxStyleSheetBase() { #ifdef DBG_UTIL |