summaryrefslogtreecommitdiff
path: root/lingucomponent/source/hyphenator
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-08-03 16:28:58 +0100
committerCaolán McNamara <caolanm@redhat.com>2011-08-03 16:28:58 +0100
commitc4de35ab55f7782646ddd322092f9e1326451aa1 (patch)
tree3ee773f1f369da4fee273a7498664d2f9945fd59 /lingucomponent/source/hyphenator
parent931aa1bfcbd2d1459f8b923a37574371515f8243 (diff)
fix this leak again post-merge
Diffstat (limited to 'lingucomponent/source/hyphenator')
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx18
1 files changed, 12 insertions, 6 deletions
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
index 6190355485e8..1f8a5089efce 100644
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
@@ -97,9 +97,6 @@ Hyphenator::Hyphenator() :
Hyphenator::~Hyphenator()
{
- if (pPropHelper)
- pPropHelper->RemoveAsPropListener();
-
if (numdict && aDicts)
{
for (int i=0; i < numdict; ++i)
@@ -108,10 +105,14 @@ Hyphenator::~Hyphenator()
if (aDicts[i].aPtr)
hnj_hyphen_free(aDicts[i].aPtr);
}
- delete pPropHelper;
}
-
delete[] aDicts;
+
+ if (pPropHelper)
+ {
+ pPropHelper->RemoveAsPropListener();
+ delete pPropHelper;
+ }
}
PropertyHelper_Hyphenation& Hyphenator::GetPropHelper_Impl()
@@ -124,7 +125,6 @@ PropertyHelper_Hyphenation& Hyphenator::GetPropHelper_Impl()
pPropHelper->AddAsPropListener(); //! after a reference is established
}
return *pPropHelper;
-
}
@@ -870,6 +870,12 @@ void SAL_CALL Hyphenator::dispose()
bDisposing = sal_True;
EventObject aEvtObj( (XHyphenator *) this );
aEvtListeners.disposeAndClear( aEvtObj );
+ if (pPropHelper)
+ {
+ pPropHelper->RemoveAsPropListener();
+ delete pPropHelper;
+ pPropHelper = NULL;
+ }
}
}