diff options
-rw-r--r-- | editeng/source/editeng/editeng.cxx | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx index 65eb808eb504..1b9e6b9e5cdd 100644 --- a/editeng/source/editeng/editeng.cxx +++ b/editeng/source/editeng/editeng.cxx @@ -82,7 +82,17 @@ using namespace ::com::sun::star::linguistic2; static bool bDebugPaint = false; #endif -static SfxItemPool* pGlobalPool=nullptr; + +namespace { +struct PoolDeleter +{ + void operator()(SfxItemPool* pPool) + { + SfxItemPool::Free(pPool); + }; +}; +} +static std::unique_ptr<SfxItemPool, PoolDeleter> pGlobalPool; EditEngine::EditEngine( SfxItemPool* pItemPool ) { @@ -2597,7 +2607,7 @@ SfxItemPool* EditEngine::CreatePool() SfxItemPool& EditEngine::GetGlobalItemPool() { if ( !pGlobalPool ) - pGlobalPool = CreatePool(); + pGlobalPool.reset(CreatePool()); return *pGlobalPool; } |