summaryrefslogtreecommitdiff
path: root/lingucomponent
diff options
context:
space:
mode:
authorXisco Fauli <anistenis@gmail.com>2011-08-21 21:50:13 +0200
committerXisco Fauli <anistenis@gmail.com>2011-08-21 21:50:13 +0200
commit6c76e4db034fd2c43884698b1a30225fd00b3bfd (patch)
tree1937cb9be81cd2b9f3d0ad27adcc7a7531b8f29d /lingucomponent
parente9440fb5a0579096423c081b0f0a2185b628e896 (diff)
parent36703ca1de68cd62782d0d425123521a5bc6732b (diff)
Merge branch 'master' into feature/gsoc2011_wizards
Conflicts: automation/source/inc/cmdbasestream.hxx automation/source/server/cmdbasestream.cxx automation/source/server/retstrm.hxx automation/source/testtool/cmdstrm.cxx automation/source/testtool/cmdstrm.hxx automation/source/testtool/tcommuni.cxx basctl/prj/d.lst basctl/uiconfig/basicide/toolbar/findbar.xml cui/source/dialogs/about.cxx cui/source/dialogs/about.src cui/source/inc/about.hxx extensions/source/abpilot/abpservices.cxx extensions/source/dbpilots/dbpservices.cxx extensions/source/propctrlr/pcrservices.cxx extensions/source/svg/makefile.mk forms/Library_frm.mk lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx lingucomponent/source/spellcheck/spell/sspellimp.cxx package/prj/d.lst package/source/zipapi/XMemoryStream.cxx package/source/zipapi/XMemoryStream.hxx setup_native/prj/d.lst setup_native/source/win32/customactions/relnotes/makefile.mk tools/test/export.map wizards/com/sun/star/wizards/common/ConfigGroup.py wizards/com/sun/star/wizards/common/ConfigNode.py wizards/com/sun/star/wizards/common/Configuration.py wizards/com/sun/star/wizards/common/Desktop.py wizards/com/sun/star/wizards/common/FileAccess.py wizards/com/sun/star/wizards/common/Helper.py wizards/com/sun/star/wizards/common/SystemDialog.py wizards/com/sun/star/wizards/document/OfficeDocument.py wizards/com/sun/star/wizards/fax/FaxDocument.py wizards/com/sun/star/wizards/fax/FaxWizardDialog.py wizards/com/sun/star/wizards/fax/FaxWizardDialogConst.py wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.py wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.py wizards/com/sun/star/wizards/letter/LetterDocument.py wizards/com/sun/star/wizards/letter/LetterWizardDialog.py wizards/com/sun/star/wizards/letter/LetterWizardDialogConst.py wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.py wizards/com/sun/star/wizards/letter/LetterWizardDialogResources.py wizards/com/sun/star/wizards/text/TextDocument.py wizards/com/sun/star/wizards/text/TextFieldHandler.py wizards/com/sun/star/wizards/text/TextSectionHandler.py wizards/com/sun/star/wizards/text/ViewHandler.py wizards/com/sun/star/wizards/ui/UnoDialog.py wizards/com/sun/star/wizards/ui/UnoDialog2.py wizards/com/sun/star/wizards/ui/WizardDialog.py wizards/com/sun/star/wizards/ui/event/CommonListener.py wizards/com/sun/star/wizards/ui/event/DataAware.py wizards/com/sun/star/wizards/ui/event/RadioDataAware.py wizards/com/sun/star/wizards/ui/event/UnoDataAware.py wizards/util/helpids.h wizards/util/hidother.src xmlsecurity/prj/build.lst xmlsecurity/prj/d.lst xmlsecurity/qa/certext/SanCertExt.cxx
Diffstat (limited to 'lingucomponent')
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp1
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx6
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx44
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx7
-rw-r--r--lingucomponent/source/languageguessing/guesslang.cxx6
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/macreg.cxx6
-rw-r--r--lingucomponent/source/spellcheck/spell/exports.dxp1
-rw-r--r--lingucomponent/source/spellcheck/spell/sreg.cxx6
-rw-r--r--lingucomponent/source/spellcheck/spell/sspellimp.cxx27
-rw-r--r--lingucomponent/source/spellcheck/spell/sspellimp.hxx7
-rw-r--r--lingucomponent/source/thesaurus/libnth/exports.dxp1
-rw-r--r--lingucomponent/source/thesaurus/libnth/nthesimp.cxx20
-rw-r--r--lingucomponent/source/thesaurus/libnth/nthesimp.hxx7
-rw-r--r--lingucomponent/source/thesaurus/libnth/ntreg.cxx6
14 files changed, 59 insertions, 86 deletions
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp
index a9861e3ffc0c..70033078921a 100644
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp
@@ -1,2 +1 @@
component_getFactory
-component_getImplementationEnvironment
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx
index c808227885d6..d0a20bbd4e30 100644
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx
@@ -55,12 +55,6 @@ extern void * SAL_CALL Hyphenator_getFactory(
extern "C"
{
-SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
- const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
-{
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
index 8324c4fcba0b..e54cc7471407 100644
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
@@ -98,10 +98,7 @@ Hyphenator::Hyphenator() :
Hyphenator::~Hyphenator()
{
- if (pPropHelper)
- pPropHelper->RemoveAsPropListener();
-
- if ((numdict) && (aDicts))
+ if (numdict && aDicts)
{
for (int i=0; i < numdict; i++)
{
@@ -109,24 +106,25 @@ Hyphenator::~Hyphenator()
aDicts[i].apCC = NULL;
}
}
- if (aDicts) delete[] aDicts;
- aDicts = NULL;
- numdict = 0;
-}
+ delete[] aDicts;
+ if (pPropHelper)
+ {
+ pPropHelper->RemoveAsPropListener();
+ delete pPropHelper;
+ }
+}
-PropertyHelper_Hyphen & Hyphenator::GetPropHelper_Impl()
+PropertyHelper_Hyphenation& Hyphenator::GetPropHelper_Impl()
{
if (!pPropHelper)
{
Reference< XPropertySet > xPropSet( GetLinguProperties(), UNO_QUERY );
- pPropHelper = new PropertyHelper_Hyphen ((XHyphenator *) this, xPropSet );
- xPropHelper = pPropHelper;
+ pPropHelper = new PropertyHelper_Hyphenation ((XHyphenator *) this, xPropSet );
pPropHelper->AddAsPropListener(); //! after a reference is established
}
return *pPropHelper;
-
}
@@ -291,7 +289,7 @@ Reference< XHyphenatedWord > SAL_CALL Hyphenator::hyphenate( const ::rtl::OUStri
char *lcword;
int k = 0;
- PropertyHelper_Hyphen & rHelper = GetPropHelper();
+ PropertyHelper_Hyphenation& rHelper = GetPropHelper();
rHelper.SetTmpPropVals(aProperties);
sal_Int16 minTrail = rHelper.GetMinTrailing();
sal_Int16 minLead = rHelper.GetMinLeading();
@@ -487,7 +485,7 @@ Reference< XHyphenatedWord > SAL_CALL Hyphenator::hyphenate( const ::rtl::OUStri
}
case CAPTYPE_INITCAP:
{
- if (nHyphenationPosAlt == 0)
+ if (nHyphenationPosAlt == -1)
repHyph = makeInitCap(repHyphlow, pCC);
else
repHyph = repHyphlow;
@@ -504,13 +502,13 @@ Reference< XHyphenatedWord > SAL_CALL Hyphenator::hyphenate( const ::rtl::OUStri
sal_Int16 nPos = (sal_Int16) ((nHyphenationPosAltHyph < nHyphenationPos) ?
nHyphenationPosAltHyph : nHyphenationPos);
// dicretionary hyphenation
- xRes = new HyphenatedWord( aWord, LocaleToLanguage( aLocale ), nPos,
+ xRes = HyphenatedWord::CreateHyphenatedWord( aWord, LocaleToLanguage( aLocale ), nPos,
aWord.replaceAt(nHyphenationPosAlt + 1, cut[nHyphenationPos], repHyph),
(sal_Int16) nHyphenationPosAltHyph);
}
else
{
- xRes = new HyphenatedWord( aWord, LocaleToLanguage( aLocale ),
+ xRes = HyphenatedWord::CreateHyphenatedWord( aWord, LocaleToLanguage( aLocale ),
(sal_Int16)nHyphenationPos, aWord, (sal_Int16) nHyphenationPos);
}
}
@@ -556,7 +554,7 @@ Reference< XPossibleHyphens > SAL_CALL Hyphenator::createPossibleHyphens( const
char *lcword;
int k;
- PropertyHelper_Hyphen & rHelper = GetPropHelper();
+ PropertyHelper_Hyphenation& rHelper = GetPropHelper();
rHelper.SetTmpPropVals(aProperties);
sal_Int16 minTrail = rHelper.GetMinTrailing();
sal_Int16 minLead = rHelper.GetMinLeading();
@@ -709,7 +707,7 @@ Reference< XPossibleHyphens > SAL_CALL Hyphenator::createPossibleHyphens( const
hyphenatedWord = hyphenatedWordBuffer.makeStringAndClear();
- xRes = new PossibleHyphens( aWord, LocaleToLanguage( aLocale ),
+ xRes = PossibleHyphens::CreatePossibleHyphens( aWord, LocaleToLanguage( aLocale ),
hyphenatedWord, aHyphPos );
delete[] hyphens;
@@ -820,7 +818,6 @@ sal_Bool SAL_CALL Hyphenator::removeLinguServiceEventListener(
sal_Bool bRes = sal_False;
if (!bDisposing && rxLstnr.is())
{
- DBG_ASSERT( xPropHelper.is(), "xPropHelper non existent" );
bRes = GetPropHelper().removeLinguServiceEventListener( rxLstnr );
}
return bRes;
@@ -853,8 +850,7 @@ void SAL_CALL Hyphenator::initialize( const Sequence< Any >& rArguments )
//! And the reference to the UNO-functions while increasing
//! the ref-count and will implicitly free the memory
//! when the object is not longer used.
- pPropHelper = new PropertyHelper_Hyphen( (XHyphenator *) this, xPropSet );
- xPropHelper = pPropHelper;
+ pPropHelper = new PropertyHelper_Hyphenation( (XHyphenator *) this, xPropSet );
pPropHelper->AddAsPropListener(); //! after a reference is established
}
else {
@@ -874,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/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx
index 4d0f8188fa6e..fb2ba59c3d9e 100644
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx
@@ -88,17 +88,16 @@ class Hyphenator :
sal_Int32 numdict;
::cppu::OInterfaceContainerHelper aEvtListeners;
- Reference< XPropertyChangeListener > xPropHelper;
Reference< XMultiServiceFactory > rSMgr;
- linguistic::PropertyHelper_Hyphen * pPropHelper;
+ linguistic::PropertyHelper_Hyphenation* pPropHelper;
sal_Bool bDisposing;
// disallow copy-constructor and assignment-operator for now
Hyphenator(const Hyphenator &);
Hyphenator & operator = (const Hyphenator &);
- linguistic::PropertyHelper_Hyphen & GetPropHelper_Impl();
- linguistic::PropertyHelper_Hyphen & GetPropHelper()
+ linguistic::PropertyHelper_Hyphenation& GetPropHelper_Impl();
+ linguistic::PropertyHelper_Hyphenation& GetPropHelper()
{
return pPropHelper ? *pPropHelper : GetPropHelper_Impl();
}
diff --git a/lingucomponent/source/languageguessing/guesslang.cxx b/lingucomponent/source/languageguessing/guesslang.cxx
index c48de6c3451b..86f38a73910e 100644
--- a/lingucomponent/source/languageguessing/guesslang.cxx
+++ b/lingucomponent/source/languageguessing/guesslang.cxx
@@ -422,12 +422,6 @@ static struct ::cppu::ImplementationEntry s_component_entries [] =
extern "C"
{
-SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
- sal_Char const ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
-{
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
sal_Char const * implName, lang::XMultiServiceFactory * xMgr,
registry::XRegistryKey * xRegistry )
diff --git a/lingucomponent/source/spellcheck/macosxspell/macreg.cxx b/lingucomponent/source/spellcheck/macosxspell/macreg.cxx
index 034fbb23c807..8542e916583a 100644
--- a/lingucomponent/source/spellcheck/macosxspell/macreg.cxx
+++ b/lingucomponent/source/spellcheck/macosxspell/macreg.cxx
@@ -54,12 +54,6 @@ extern void * SAL_CALL MacSpellChecker_getFactory(
extern "C"
{
-SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
- const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
-{
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/lingucomponent/source/spellcheck/spell/exports.dxp b/lingucomponent/source/spellcheck/spell/exports.dxp
index a9861e3ffc0c..70033078921a 100644
--- a/lingucomponent/source/spellcheck/spell/exports.dxp
+++ b/lingucomponent/source/spellcheck/spell/exports.dxp
@@ -1,2 +1 @@
component_getFactory
-component_getImplementationEnvironment
diff --git a/lingucomponent/source/spellcheck/spell/sreg.cxx b/lingucomponent/source/spellcheck/spell/sreg.cxx
index cbd0c9724eb2..ff0ceb4415c1 100644
--- a/lingucomponent/source/spellcheck/spell/sreg.cxx
+++ b/lingucomponent/source/spellcheck/spell/sreg.cxx
@@ -52,12 +52,6 @@ extern void * SAL_CALL SpellChecker_getFactory(
extern "C"
{
-SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
- const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
-{
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/lingucomponent/source/spellcheck/spell/sspellimp.cxx b/lingucomponent/source/spellcheck/spell/sspellimp.cxx
index c72103c6e03f..e210c2e7e501 100644
--- a/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+++ b/lingucomponent/source/spellcheck/spell/sspellimp.cxx
@@ -109,18 +109,19 @@ SpellChecker::~SpellChecker()
if (aDNames) delete[] aDNames;
aDNames = NULL;
if (pPropHelper)
+ {
pPropHelper->RemoveAsPropListener();
+ delete pPropHelper;
+ }
}
-
-PropertyHelper_Spell & SpellChecker::GetPropHelper_Impl()
+PropertyHelper_Spelling & SpellChecker::GetPropHelper_Impl()
{
if (!pPropHelper)
{
Reference< XPropertySet > xPropSet( GetLinguProperties(), UNO_QUERY );
- pPropHelper = new PropertyHelper_Spell( (XSpellChecker *) this, xPropSet );
- xPropHelper = pPropHelper;
+ pPropHelper = new PropertyHelper_Spelling( (XSpellChecker *) this, xPropSet );
pPropHelper->AddAsPropListener(); //! after a reference is established
}
return *pPropHelper;
@@ -390,7 +391,7 @@ sal_Bool SAL_CALL SpellChecker::isValid( const OUString& rWord, const Locale& rL
// You'll probably like to use a simplier solution than the provided
// one using the PropertyHelper_Spell.
- PropertyHelper_Spell &rHelper = GetPropHelper();
+ PropertyHelper_Spelling& rHelper = GetPropHelper();
rHelper.SetTmpPropVals( rProperties );
sal_Int16 nFailure = GetSpellFailure( rWord, rLocale );
@@ -479,12 +480,8 @@ Reference< XSpellAlternatives >
}
// now return an empty alternative for no suggestions or the list of alternatives if some found
- SpellAlternatives *pAlt = new SpellAlternatives;
String aTmp(rWord);
- pAlt->SetWordLanguage( aTmp, nLang );
- pAlt->SetFailureType( SpellFailure::SPELLING_ERROR );
- pAlt->SetAlternatives( aStr );
- xRes = pAlt;
+ xRes = SpellAlternatives::CreateSpellAlternatives( aTmp, nLang, SpellFailure::SPELLING_ERROR, aStr );
return xRes;
}
return xRes;
@@ -551,7 +548,6 @@ sal_Bool SAL_CALL SpellChecker::removeLinguServiceEventListener(
sal_Bool bRes = sal_False;
if (!bDisposing && rxLstnr.is())
{
- DBG_ASSERT( xPropHelper.is(), "xPropHelper non existent" );
bRes = GetPropHelper().removeLinguServiceEventListener( rxLstnr );
}
return bRes;
@@ -584,8 +580,7 @@ void SAL_CALL SpellChecker::initialize( const Sequence< Any >& rArguments )
//! And the reference to the UNO-functions while increasing
//! the ref-count and will implicitly free the memory
//! when the object is not longer used.
- pPropHelper = new PropertyHelper_Spell( (XSpellChecker *) this, xPropSet );
- xPropHelper = pPropHelper;
+ pPropHelper = new PropertyHelper_Spelling( (XSpellChecker *) this, xPropSet );
pPropHelper->AddAsPropListener(); //! after a reference is established
}
else {
@@ -605,6 +600,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/spellcheck/spell/sspellimp.hxx b/lingucomponent/source/spellcheck/spell/sspellimp.hxx
index 03b51b0ff862..c561b229d640 100644
--- a/lingucomponent/source/spellcheck/spell/sspellimp.hxx
+++ b/lingucomponent/source/spellcheck/spell/sspellimp.hxx
@@ -77,16 +77,15 @@ class SpellChecker :
sal_Int32 numdict;
::cppu::OInterfaceContainerHelper aEvtListeners;
- Reference< XPropertyChangeListener > xPropHelper;
- linguistic::PropertyHelper_Spell * pPropHelper;
+ linguistic::PropertyHelper_Spelling* pPropHelper;
sal_Bool bDisposing;
// disallow copy-constructor and assignment-operator for now
SpellChecker(const SpellChecker &);
SpellChecker & operator = (const SpellChecker &);
- linguistic::PropertyHelper_Spell & GetPropHelper_Impl();
- linguistic::PropertyHelper_Spell & GetPropHelper()
+ linguistic::PropertyHelper_Spelling& GetPropHelper_Impl();
+ linguistic::PropertyHelper_Spelling& GetPropHelper()
{
return pPropHelper ? *pPropHelper : GetPropHelper_Impl();
}
diff --git a/lingucomponent/source/thesaurus/libnth/exports.dxp b/lingucomponent/source/thesaurus/libnth/exports.dxp
index a9861e3ffc0c..70033078921a 100644
--- a/lingucomponent/source/thesaurus/libnth/exports.dxp
+++ b/lingucomponent/source/thesaurus/libnth/exports.dxp
@@ -1,2 +1 @@
component_getFactory
-component_getImplementationEnvironment
diff --git a/lingucomponent/source/thesaurus/libnth/nthesimp.cxx b/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
index 997b09a2d9fc..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,18 +137,20 @@ Thesaurus::~Thesaurus()
aTNames = NULL;
if (pPropHelper)
+ {
pPropHelper->RemoveAsPropListener();
+ delete pPropHelper;
+ }
}
-PropertyHelper_Thes & Thesaurus::GetPropHelper_Impl()
+PropertyHelper_Thesaurus& Thesaurus::GetPropHelper_Impl()
{
if (!pPropHelper)
{
Reference< XPropertySet > xPropSet( GetLinguProperties(), UNO_QUERY );
- pPropHelper = new PropertyHelper_Thes( (XThesaurus *) this, xPropSet );
- xPropHelper = pPropHelper;
+ pPropHelper = new PropertyHelper_Thesaurus( (XThesaurus *) this, xPropSet );
pPropHelper->AddAsPropListener(); //! after a reference is established
}
return *pPropHelper;
@@ -344,7 +345,7 @@ Sequence < Reference < ::com::sun::star::linguistic2::XMeaning > > SAL_CALL Thes
mentry * pmean = NULL;
sal_Int32 nmean = 0;
- PropertyHelper_Thes &rHelper = GetPropHelper();
+ PropertyHelper_Thesaurus &rHelper = GetPropHelper();
rHelper.SetTmpPropVals( rProperties );
MyThes * pTH = NULL;
@@ -603,8 +604,7 @@ void SAL_CALL Thesaurus::initialize( const Sequence< Any >& rArguments )
//! And the reference to the UNO-functions while increasing
//! the ref-count and will implicitly free the memory
//! when the object is not longer used.
- pPropHelper = new PropertyHelper_Thes( (XThesaurus *) this, xPropSet );
- xPropHelper = pPropHelper;
+ pPropHelper = new PropertyHelper_Thesaurus( (XThesaurus *) this, xPropSet );
pPropHelper->AddAsPropListener(); //! after a reference is established
}
else
@@ -687,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;
+ }
}
}
diff --git a/lingucomponent/source/thesaurus/libnth/nthesimp.hxx b/lingucomponent/source/thesaurus/libnth/nthesimp.hxx
index 2bfa4bbba347..7baa32d1befa 100644
--- a/lingucomponent/source/thesaurus/libnth/nthesimp.hxx
+++ b/lingucomponent/source/thesaurus/libnth/nthesimp.hxx
@@ -86,8 +86,7 @@ class Thesaurus :
Sequence< Locale > aSuppLocales;
::cppu::OInterfaceContainerHelper aEvtListeners;
- Reference< XPropertyChangeListener > xPropHelper;
- linguistic::PropertyHelper_Thes * pPropHelper;
+ linguistic::PropertyHelper_Thesaurus* pPropHelper;
sal_Bool bDisposing;
CharClass ** aCharSetInfo;
MyThes ** aThes;
@@ -105,8 +104,8 @@ class Thesaurus :
Thesaurus(const Thesaurus &);
Thesaurus & operator = (const Thesaurus &);
- linguistic::PropertyHelper_Thes & GetPropHelper_Impl();
- linguistic::PropertyHelper_Thes & GetPropHelper()
+ linguistic::PropertyHelper_Thesaurus& GetPropHelper_Impl();
+ linguistic::PropertyHelper_Thesaurus& GetPropHelper()
{
return pPropHelper ? *pPropHelper : GetPropHelper_Impl();
}
diff --git a/lingucomponent/source/thesaurus/libnth/ntreg.cxx b/lingucomponent/source/thesaurus/libnth/ntreg.cxx
index 43f13b6b8fc6..d5f7d5f203fe 100644
--- a/lingucomponent/source/thesaurus/libnth/ntreg.cxx
+++ b/lingucomponent/source/thesaurus/libnth/ntreg.cxx
@@ -54,12 +54,6 @@ extern void * SAL_CALL Thesaurus_getFactory(
extern "C"
{
-SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
- const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
-{
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{