editeng/inc/editeng/forbiddencharacterstable.hxx | 27 +++++------- editeng/source/misc/forbiddencharacterstable.cxx | 50 +++++------------------ editeng/source/uno/UnoForbiddenCharsTable.cxx | 7 +-- 3 files changed, 27 insertions(+), 57 deletions(-)
New commits: commit 843eafc765a3d1d0ea4c9a89855c73e81784aa8b Author: Ivan Timofeev <timofeev....@gmail.com> Date: Wed Feb 15 20:44:26 2012 +0400 tweak "Convert tools/table.hxx in editeng/forbiddencharacterstable.hxx..." * remove 'const' from GetForbiddenCharacters * CharInfoMap -> Map * pInf -> pForbiddenCharacters * remove 'inline' from the function defined within the class definition * some code simplifications diff --git a/editeng/inc/editeng/forbiddencharacterstable.hxx b/editeng/inc/editeng/forbiddencharacterstable.hxx index afe6d5b..55db6db 100644 --- a/editeng/inc/editeng/forbiddencharacterstable.hxx +++ b/editeng/inc/editeng/forbiddencharacterstable.hxx @@ -45,17 +45,17 @@ namespace lang { class EDITENG_DLLPUBLIC SvxForbiddenCharactersTable : public salhelper::SimpleReferenceObject { public: - typedef std::map<sal_uInt16, com::sun::star::i18n::ForbiddenCharacters> CharInfoMap; + typedef std::map<sal_uInt16, com::sun::star::i18n::ForbiddenCharacters> Map; private: - mutable CharInfoMap maCharInfoMap; + Map maMap; ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMSF; public: SvxForbiddenCharactersTable( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xMSF); ~SvxForbiddenCharactersTable() {} - inline CharInfoMap& Map() { return maCharInfoMap; } - const com::sun::star::i18n::ForbiddenCharacters* GetForbiddenCharacters( sal_uInt16 nLanguage, sal_Bool bGetDefault ) const; + Map& GetMap() { return maMap; } + const com::sun::star::i18n::ForbiddenCharacters* GetForbiddenCharacters( sal_uInt16 nLanguage, sal_Bool bGetDefault ); void SetForbiddenCharacters( sal_uInt16 nLanguage , const com::sun::star::i18n::ForbiddenCharacters& ); void ClearForbiddenCharacters( sal_uInt16 nLanguage ); }; diff --git a/editeng/source/misc/forbiddencharacterstable.cxx b/editeng/source/misc/forbiddencharacterstable.cxx index e809282..9760b0f 100644 --- a/editeng/source/misc/forbiddencharacterstable.cxx +++ b/editeng/source/misc/forbiddencharacterstable.cxx @@ -39,31 +39,29 @@ SvxForbiddenCharactersTable::SvxForbiddenCharactersTable( ::com::sun::star::uno: mxMSF = xMSF; } -const com::sun::star::i18n::ForbiddenCharacters* SvxForbiddenCharactersTable::GetForbiddenCharacters( sal_uInt16 nLanguage, sal_Bool bGetDefault ) const +const com::sun::star::i18n::ForbiddenCharacters* SvxForbiddenCharactersTable::GetForbiddenCharacters( sal_uInt16 nLanguage, sal_Bool bGetDefault ) { - com::sun::star::i18n::ForbiddenCharacters* pInf = NULL; - CharInfoMap::iterator it = maCharInfoMap.find( nLanguage ); - if ( it != maCharInfoMap.end() ) - pInf = &(it->second); - if ( !pInf && bGetDefault && mxMSF.is() ) + com::sun::star::i18n::ForbiddenCharacters* pForbiddenCharacters = NULL; + Map::iterator it = maMap.find( nLanguage ); + if ( it != maMap.end() ) + pForbiddenCharacters = &(it->second); + else if ( bGetDefault && mxMSF.is() ) { LocaleDataWrapper aWrapper( mxMSF, SvxCreateLocale( nLanguage ) ); - maCharInfoMap[ nLanguage ] = aWrapper.getForbiddenCharacters(); - pInf = &maCharInfoMap[ nLanguage ]; + maMap[ nLanguage ] = aWrapper.getForbiddenCharacters(); + pForbiddenCharacters = &maMap[ nLanguage ]; } - return pInf; + return pForbiddenCharacters; } void SvxForbiddenCharactersTable::SetForbiddenCharacters( sal_uInt16 nLanguage, const com::sun::star::i18n::ForbiddenCharacters& rForbiddenChars ) { - maCharInfoMap[ nLanguage ] = rForbiddenChars; + maMap[ nLanguage ] = rForbiddenChars; } void SvxForbiddenCharactersTable::ClearForbiddenCharacters( sal_uInt16 nLanguage ) { - CharInfoMap::iterator it = maCharInfoMap.find( nLanguage ); - if ( it != maCharInfoMap.end() ) - maCharInfoMap.erase( it ); + maMap.erase( nLanguage ); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/editeng/source/uno/UnoForbiddenCharsTable.cxx b/editeng/source/uno/UnoForbiddenCharsTable.cxx index 5d2c79e..5957520 100644 --- a/editeng/source/uno/UnoForbiddenCharsTable.cxx +++ b/editeng/source/uno/UnoForbiddenCharsTable.cxx @@ -117,15 +117,15 @@ Sequence< Locale > SAL_CALL SvxUnoForbiddenCharsTable::getLocales() { SolarMutexGuard aGuard; - const sal_Int32 nCount = mxForbiddenChars.is() ? mxForbiddenChars->Map().size() : 0; + const sal_Int32 nCount = mxForbiddenChars.is() ? mxForbiddenChars->GetMap().size() : 0; Sequence< Locale > aLocales( nCount ); if( nCount ) { Locale* pLocales = aLocales.getArray(); - for( SvxForbiddenCharactersTable::CharInfoMap::iterator it = mxForbiddenChars->Map().begin(); - it != mxForbiddenChars->Map().end(); ++it ) + for( SvxForbiddenCharactersTable::Map::iterator it = mxForbiddenChars->GetMap().begin(); + it != mxForbiddenChars->GetMap().end(); ++it ) { const sal_uLong nLanguage = it->first; SvxLanguageToLocale ( *pLocales++, static_cast < LanguageType > (nLanguage) ); commit 9d4b0c25a598a53601e2bd337443728f17f8296a Author: Noel Grandin <n...@peralex.com> Date: Wed Feb 15 20:06:28 2012 +0400 Convert tools/table.hxx in editeng/forbiddencharacterstable.hxx to std::map diff --git a/editeng/inc/editeng/forbiddencharacterstable.hxx b/editeng/inc/editeng/forbiddencharacterstable.hxx index 5d499e8..afe6d5b 100644 --- a/editeng/inc/editeng/forbiddencharacterstable.hxx +++ b/editeng/inc/editeng/forbiddencharacterstable.hxx @@ -29,12 +29,11 @@ #ifndef _FORBIDDENCHARACTERSTABLE_HXX #define _FORBIDDENCHARACTERSTABLE_HXX -#include <tools/table.hxx> - #include <salhelper/simplereferenceobject.hxx> #include <com/sun/star/uno/Reference.hxx> #include <com/sun/star/i18n/ForbiddenCharacters.hpp> #include "editeng/editengdllapi.h" +#include <map> namespace com { namespace sun { @@ -43,26 +42,22 @@ namespace lang { class XMultiServiceFactory; }}}} -struct ForbiddenCharactersInfo -{ - com::sun::star::i18n::ForbiddenCharacters aForbiddenChars; - sal_Bool bTemporary; -}; - -DECLARE_TABLE( SvxForbiddenCharactersTableImpl, ForbiddenCharactersInfo* ) - -class EDITENG_DLLPUBLIC SvxForbiddenCharactersTable : public SvxForbiddenCharactersTableImpl, public salhelper::SimpleReferenceObject +class EDITENG_DLLPUBLIC SvxForbiddenCharactersTable : public salhelper::SimpleReferenceObject { +public: + typedef std::map<sal_uInt16, com::sun::star::i18n::ForbiddenCharacters> CharInfoMap; private: + mutable CharInfoMap maCharInfoMap; ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > mxMSF; public: - SvxForbiddenCharactersTable( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xMSF, sal_uInt16 nISize = 4, sal_uInt16 nGrow = 4 ); - ~SvxForbiddenCharactersTable(); + SvxForbiddenCharactersTable( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xMSF); + ~SvxForbiddenCharactersTable() {} - const com::sun::star::i18n::ForbiddenCharacters* GetForbiddenCharacters( sal_uInt16 nLanuage, sal_Bool bGetDefault ) const; - void SetForbiddenCharacters( sal_uInt16 nLanuage , const com::sun::star::i18n::ForbiddenCharacters& ); - void ClearForbiddenCharacters( sal_uInt16 nLanuage ); + inline CharInfoMap& Map() { return maCharInfoMap; } + const com::sun::star::i18n::ForbiddenCharacters* GetForbiddenCharacters( sal_uInt16 nLanguage, sal_Bool bGetDefault ) const; + void SetForbiddenCharacters( sal_uInt16 nLanguage , const com::sun::star::i18n::ForbiddenCharacters& ); + void ClearForbiddenCharacters( sal_uInt16 nLanguage ); }; #endif // _FORBIDDENCHARACTERSTABLE_HXX diff --git a/editeng/source/misc/forbiddencharacterstable.cxx b/editeng/source/misc/forbiddencharacterstable.cxx index deb8d4d..e809282 100644 --- a/editeng/source/misc/forbiddencharacterstable.cxx +++ b/editeng/source/misc/forbiddencharacterstable.cxx @@ -34,60 +34,36 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> -SvxForbiddenCharactersTable::SvxForbiddenCharactersTable( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xMSF, sal_uInt16 nISize, sal_uInt16 nGrow ) - : SvxForbiddenCharactersTableImpl( nISize, nGrow ) +SvxForbiddenCharactersTable::SvxForbiddenCharactersTable( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xMSF) { mxMSF = xMSF; } - -SvxForbiddenCharactersTable::~SvxForbiddenCharactersTable() -{ - for ( sal_uLong n = Count(); n; ) - delete GetObject( --n ); -} - - - const com::sun::star::i18n::ForbiddenCharacters* SvxForbiddenCharactersTable::GetForbiddenCharacters( sal_uInt16 nLanguage, sal_Bool bGetDefault ) const { - ForbiddenCharactersInfo* pInf = Get( nLanguage ); + com::sun::star::i18n::ForbiddenCharacters* pInf = NULL; + CharInfoMap::iterator it = maCharInfoMap.find( nLanguage ); + if ( it != maCharInfoMap.end() ) + pInf = &(it->second); if ( !pInf && bGetDefault && mxMSF.is() ) { - const SvxForbiddenCharactersTableImpl *pConstImpl = dynamic_cast<const SvxForbiddenCharactersTableImpl*>(this); - SvxForbiddenCharactersTableImpl* pImpl = const_cast<SvxForbiddenCharactersTableImpl*>(pConstImpl); - pInf = new ForbiddenCharactersInfo; - pImpl->Insert( nLanguage, pInf ); - - pInf->bTemporary = sal_True; LocaleDataWrapper aWrapper( mxMSF, SvxCreateLocale( nLanguage ) ); - pInf->aForbiddenChars = aWrapper.getForbiddenCharacters(); + maCharInfoMap[ nLanguage ] = aWrapper.getForbiddenCharacters(); + pInf = &maCharInfoMap[ nLanguage ]; } - return pInf ? &pInf->aForbiddenChars : NULL; + return pInf; } - - void SvxForbiddenCharactersTable::SetForbiddenCharacters( sal_uInt16 nLanguage, const com::sun::star::i18n::ForbiddenCharacters& rForbiddenChars ) { - ForbiddenCharactersInfo* pInf = Get( nLanguage ); - if ( !pInf ) - { - pInf = new ForbiddenCharactersInfo; - Insert( nLanguage, pInf ); - } - pInf->bTemporary = sal_False; - pInf->aForbiddenChars = rForbiddenChars; + maCharInfoMap[ nLanguage ] = rForbiddenChars; } void SvxForbiddenCharactersTable::ClearForbiddenCharacters( sal_uInt16 nLanguage ) { - ForbiddenCharactersInfo* pInf = Get( nLanguage ); - if ( pInf ) - { - Remove( nLanguage ); - delete pInf; - } + CharInfoMap::iterator it = maCharInfoMap.find( nLanguage ); + if ( it != maCharInfoMap.end() ) + maCharInfoMap.erase( it ); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/editeng/source/uno/UnoForbiddenCharsTable.cxx b/editeng/source/uno/UnoForbiddenCharsTable.cxx index 5bcbf35..5d2c79e 100644 --- a/editeng/source/uno/UnoForbiddenCharsTable.cxx +++ b/editeng/source/uno/UnoForbiddenCharsTable.cxx @@ -117,16 +117,17 @@ Sequence< Locale > SAL_CALL SvxUnoForbiddenCharsTable::getLocales() { SolarMutexGuard aGuard; - const sal_Int32 nCount = mxForbiddenChars.is() ? mxForbiddenChars->Count() : 0; + const sal_Int32 nCount = mxForbiddenChars.is() ? mxForbiddenChars->Map().size() : 0; Sequence< Locale > aLocales( nCount ); if( nCount ) { Locale* pLocales = aLocales.getArray(); - for( sal_Int32 nIndex = 0; nIndex < nCount; nIndex++ ) + for( SvxForbiddenCharactersTable::CharInfoMap::iterator it = mxForbiddenChars->Map().begin(); + it != mxForbiddenChars->Map().end(); ++it ) { - const sal_uLong nLanguage = mxForbiddenChars->GetObjectKey( nIndex ); + const sal_uLong nLanguage = it->first; SvxLanguageToLocale ( *pLocales++, static_cast < LanguageType > (nLanguage) ); } } _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits