summaryrefslogtreecommitdiff
path: root/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx')
-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;
+ }
}
}