summaryrefslogtreecommitdiff
path: root/lingucomponent/source
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
parent931aa1bfcbd2d1459f8b923a37574371515f8243 (diff)
fix this leak again post-merge
Diffstat (limited to 'lingucomponent/source')
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx18
-rw-r--r--lingucomponent/source/spellcheck/spell/sspellimp.cxx11
-rw-r--r--lingucomponent/source/thesaurus/libnth/nthesimp.cxx11
3 files changed, 32 insertions, 8 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;
+ }
}
}
diff --git a/lingucomponent/source/spellcheck/spell/sspellimp.cxx b/lingucomponent/source/spellcheck/spell/sspellimp.cxx
index 88ab0bf1c413..31bcadce6d0b 100644
--- a/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+++ b/lingucomponent/source/spellcheck/spell/sspellimp.cxx
@@ -107,6 +107,11 @@ SpellChecker::~SpellChecker()
aDLocs = NULL;
delete[] aDNames;
aDNames = NULL;
+ if (pPropHelper)
+ {
+ pPropHelper->RemoveAsPropListener();
+ delete pPropHelper;
+ }
}
PropertyHelper_Spelling & SpellChecker::GetPropHelper_Impl()
@@ -594,6 +599,12 @@ void SAL_CALL SpellChecker::dispose()
bDisposing = sal_True;
EventObject aEvtObj( (XSpellChecker *) this );
aEvtListeners.disposeAndClear( aEvtObj );
+ if (pPropHelper)
+ {
+ pPropHelper->RemoveAsPropListener();
+ delete pPropHelper;
+ pPropHelper = NULL;
+ }
}
}
diff --git a/lingucomponent/source/thesaurus/libnth/nthesimp.cxx b/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
index 675acfb12ca4..161da6afef04 100644
--- a/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
+++ b/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
@@ -108,7 +108,6 @@ Thesaurus::Thesaurus() :
Thesaurus::~Thesaurus()
{
-
if (aThes)
{
for (int i = 0; i < numthes; i++)
@@ -138,8 +137,10 @@ Thesaurus::~Thesaurus()
aTNames = NULL;
if (pPropHelper)
+ {
pPropHelper->RemoveAsPropListener();
- delete pPropHelper;
+ delete pPropHelper;
+ }
}
@@ -686,6 +687,12 @@ void SAL_CALL Thesaurus::dispose()
bDisposing = sal_True;
EventObject aEvtObj( (XThesaurus *) this );
aEvtListeners.disposeAndClear( aEvtObj );
+ if (pPropHelper)
+ {
+ pPropHelper->RemoveAsPropListener();
+ delete pPropHelper;
+ pPropHelper = NULL;
+ }
}
}