summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editeng/source/editeng/editeng.cxx14
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;
}