use unique_ptr in StringResourceImpl

Change-Id: Id7a44c4ac5643aae96cb707d2cca217f8535ee63
Reviewed-on: https://gerrit.libreoffice.org/65404
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel Grandin
2018-12-19 10:52:51 +02:00
parent 415c2e54e7
commit f12b6893cf
2 changed files with 20 additions and 26 deletions

View File

@@ -38,6 +38,7 @@
#include <com/sun/star/ucb/SimpleFileAccess.hpp>
#include <osl/diagnose.h>
#include <o3tl/make_unique.hxx>
#include <rtl/tencinfo.h>
#include <rtl/ustrbuf.hxx>
#include <rtl/strbuf.hxx>
@@ -337,8 +338,8 @@ void StringResourceImpl::setDefaultLocale( const Locale& locale )
{
if( m_pDefaultLocaleItem )
{
LocaleItem* pChangedDefaultLocaleItem = new LocaleItem( m_pDefaultLocaleItem->m_locale );
m_aChangedDefaultLocaleVector.push_back( pChangedDefaultLocaleItem );
m_aChangedDefaultLocaleVector.push_back(
o3tl::make_unique<LocaleItem>( m_pDefaultLocaleItem->m_locale ) );
}
m_pDefaultLocaleItem = pLocaleItem;
@@ -523,8 +524,8 @@ void StringResourceImpl::removeLocale( const Locale& locale )
m_nNextUniqueNumericId = 0;
if( m_pDefaultLocaleItem )
{
LocaleItem* pChangedDefaultLocaleItem = new LocaleItem( m_pDefaultLocaleItem->m_locale );
m_aChangedDefaultLocaleVector.push_back( pChangedDefaultLocaleItem );
m_aChangedDefaultLocaleVector.push_back(
o3tl::make_unique<LocaleItem>( m_pDefaultLocaleItem->m_locale ) );
}
m_pCurrentLocaleItem = nullptr;
m_pDefaultLocaleItem = nullptr;
@@ -937,20 +938,17 @@ void StringResourcePersistenceImpl::implStoreAtStorage
{
for( auto& pLocaleItem : m_aChangedDefaultLocaleVector )
{
if( pLocaleItem != nullptr )
OUString aStreamName = implGetFileNameForLocaleItem( pLocaleItem.get(), m_aNameBase );
aStreamName += ".default";
try
{
OUString aStreamName = implGetFileNameForLocaleItem( pLocaleItem, m_aNameBase );
aStreamName += ".default";
try
{
Storage->removeElement( aStreamName );
}
catch( Exception& )
{}
delete pLocaleItem;
Storage->removeElement( aStreamName );
}
catch( Exception& )
{}
pLocaleItem.reset();
}
m_aChangedDefaultLocaleVector.clear();
}
@@ -1019,15 +1017,11 @@ void StringResourcePersistenceImpl::implKillChangedDefaultFiles
// Delete files for changed defaults
for( auto& pLocaleItem : m_aChangedDefaultLocaleVector )
{
if( pLocaleItem != nullptr )
{
OUString aCompleteFileName =
implGetPathForLocaleItem( pLocaleItem, aNameBase, Location, true );
if( xFileAccess->exists( aCompleteFileName ) )
xFileAccess->kill( aCompleteFileName );
delete pLocaleItem;
}
OUString aCompleteFileName =
implGetPathForLocaleItem( pLocaleItem.get(), aNameBase, Location, true );
if( xFileAccess->exists( aCompleteFileName ) )
xFileAccess->kill( aCompleteFileName );
pLocaleItem.reset();
}
m_aChangedDefaultLocaleVector.clear();
}

View File

@@ -82,7 +82,7 @@ struct LocaleItem
{}
};
typedef std::vector< LocaleItem* > LocaleItemVector;
typedef std::vector< std::unique_ptr<LocaleItem> > LocaleItemVector;
typedef ::cppu::WeakImplHelper<
css::lang::XServiceInfo,