diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-11 11:16:58 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-12 08:27:46 +0200 |
commit | f37f83e9e879926568bf1f508ad554a20076100d (patch) | |
tree | 5a4c7ed200351c5ca6229c62b69de2ee5d8f6560 | |
parent | acde273ea8b105ed5cc7adec98110b822a1b4490 (diff) |
loplugin:useuniqueptr in LotusFontBuffer
Change-Id: I1039d3f40409a0839c35d6270741aae8017ddf62
Reviewed-on: https://gerrit.libreoffice.org/57295
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | sc/source/filter/excel/fontbuff.cxx | 10 | ||||
-rw-r--r-- | sc/source/filter/inc/lotfntbf.hxx | 36 |
2 files changed, 13 insertions, 33 deletions
diff --git a/sc/source/filter/excel/fontbuff.cxx b/sc/source/filter/excel/fontbuff.cxx index 05416a6b8a3a..180bab493d90 100644 --- a/sc/source/filter/excel/fontbuff.cxx +++ b/sc/source/filter/excel/fontbuff.cxx @@ -30,6 +30,7 @@ #include <editeng/wghtitem.hxx> #include <osl/diagnose.h> #include <sfx2/printer.hxx> +#include <o3tl/make_unique.hxx> #include <attrib.hxx> #include <document.hxx> @@ -94,7 +95,7 @@ void LotusFontBuffer::SetHeight( const sal_uInt16 nIndex, const sal_uInt16 nHeig { OSL_ENSURE( nIndex < nSize, "*LotusFontBuffer::SetHeight(): Array too small!" ); if( nIndex < nSize ) - pData[ nIndex ].Height( *( new SvxFontHeightItem( static_cast<sal_uLong>(nHeight) * 20, 100, ATTR_FONT_HEIGHT ) ) ); + pData[ nIndex ].Height( o3tl::make_unique<SvxFontHeightItem>( static_cast<sal_uLong>(nHeight) * 20, 100, ATTR_FONT_HEIGHT ) ); } void LotusFontBuffer::SetType( const sal_uInt16 nIndex, const sal_uInt16 nType ) @@ -105,7 +106,7 @@ void LotusFontBuffer::SetType( const sal_uInt16 nIndex, const sal_uInt16 nType ) ENTRY* pEntry = pData + nIndex; pEntry->Type( nType ); - if( pEntry->pTmpName ) + if( pEntry->xTmpName ) MakeFont( pEntry ); } } @@ -134,10 +135,9 @@ void LotusFontBuffer::MakeFont( ENTRY* pEntry ) break; } - pEntry->pFont = new SvxFontItem( eFamily, *pEntry->pTmpName, EMPTY_OUSTRING, ePitch, eCharSet, ATTR_FONT ); + pEntry->pFont.reset( new SvxFontItem( eFamily, *pEntry->xTmpName, EMPTY_OUSTRING, ePitch, eCharSet, ATTR_FONT ) ); - delete pEntry->pTmpName; - pEntry->pTmpName = nullptr; + pEntry->xTmpName.reset(); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/filter/inc/lotfntbf.hxx b/sc/source/filter/inc/lotfntbf.hxx index cb42d5ed7e65..f388d8e51375 100644 --- a/sc/source/filter/inc/lotfntbf.hxx +++ b/sc/source/filter/inc/lotfntbf.hxx @@ -24,6 +24,7 @@ #include <editeng/fontitem.hxx> #include <editeng/fhgtitem.hxx> #include <editeng/colritem.hxx> +#include <boost/optional.hpp> // Code in fontbuff.cxx (excel) @@ -32,38 +33,17 @@ class LotusFontBuffer private: struct ENTRY { - OUString* pTmpName; - SvxFontItem* pFont; - SvxFontHeightItem* pHeight; - sal_Int32 nType; // < 0 -> undefined - ENTRY() - { - pTmpName = nullptr; - pFont = nullptr; - pHeight = nullptr; - nType = -1; - } - ~ENTRY() - { - if( pTmpName ) - delete pTmpName; - if( pFont ) - delete pFont; - if( pHeight ) - delete pHeight; - } + boost::optional<OUString> xTmpName; + std::unique_ptr<SvxFontItem> pFont; + std::unique_ptr<SvxFontHeightItem> pHeight; + sal_Int32 nType = -1; // < 0 -> undefined void TmpName( const OUString &rNew ) { - if( pTmpName ) - *pTmpName = rNew; - else - pTmpName = new OUString( rNew ); + xTmpName = rNew; } - void Height( SvxFontHeightItem& rNew ) + void Height( std::unique_ptr<SvxFontHeightItem> pNew ) { - if( pHeight ) - delete pHeight; - pHeight = &rNew; + pHeight = std::move(pNew); } void Type( const sal_uInt16 nNew ) { nType = nNew; } }; |