diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-08-14 10:10:25 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-08-15 08:42:01 +0200 |
commit | 92f9fcc99d103a572d42b00a0227e3d8d8303be6 (patch) | |
tree | 982c23de3aac011f79a8c8408a72c82197a8a18c /filter | |
parent | aad3b3b067987390b356a6901b85e0bfab46fab8 (diff) |
loplugin:useuniqueptr in CGMChart
Change-Id: I55e11d158c50a76b0fad1da0e1adc3712990aa8f
Reviewed-on: https://gerrit.libreoffice.org/59028
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/graphicfilter/icgm/chart.cxx | 28 | ||||
-rw-r--r-- | filter/source/graphicfilter/icgm/chart.hxx | 5 | ||||
-rw-r--r-- | filter/source/graphicfilter/icgm/class7.cxx | 4 |
3 files changed, 9 insertions, 28 deletions
diff --git a/filter/source/graphicfilter/icgm/chart.cxx b/filter/source/graphicfilter/icgm/chart.cxx index eaefef22195e..afd39f69e556 100644 --- a/filter/source/graphicfilter/icgm/chart.cxx +++ b/filter/source/graphicfilter/icgm/chart.cxx @@ -33,34 +33,16 @@ CGMChart::CGMChart() CGMChart::~CGMChart() { // delete the whole textentry structure - - while( !maTextEntryList.empty() ) - { - DeleteTextEntry( maTextEntryList[ 0 ] ); - } -} - -void CGMChart::DeleteTextEntry( TextEntry* pTextEntry ) -{ - if ( pTextEntry ) + for (auto & pTextEntry : maTextEntryList) { - delete pTextEntry->pText; - ::std::vector< TextEntry* >::iterator it; - for ( it = maTextEntryList.begin(); it != maTextEntryList.end(); ++it ) - { - if ( *it == pTextEntry ) - { - maTextEntryList.erase( it ); - break; - } - } - delete pTextEntry; + if ( pTextEntry ) + delete pTextEntry->pText; } } -void CGMChart::InsertTextEntry( TextEntry* pTextEntry ) +void CGMChart::InsertTextEntry( std::unique_ptr<TextEntry> pTextEntry ) { - maTextEntryList.push_back( pTextEntry ); + maTextEntryList.push_back( std::move(pTextEntry) ); } void CGMChart::ResetAnnotation() diff --git a/filter/source/graphicfilter/icgm/chart.hxx b/filter/source/graphicfilter/icgm/chart.hxx index 445d558978d3..837015614696 100644 --- a/filter/source/graphicfilter/icgm/chart.hxx +++ b/filter/source/graphicfilter/icgm/chart.hxx @@ -64,15 +64,14 @@ class CGMChart final friend class CGMImpressOutAct; sal_Int8 mnCurrentFileType; - ::std::vector< TextEntry* > maTextEntryList; + ::std::vector< std::unique_ptr<TextEntry> > maTextEntryList; DataNode mDataNode[ 7 ]; public: CGMChart(); ~CGMChart(); - void DeleteTextEntry( TextEntry* ); - void InsertTextEntry( TextEntry* ); + void InsertTextEntry( std::unique_ptr<TextEntry> ); void ResetAnnotation(); bool IsAnnotation(); diff --git a/filter/source/graphicfilter/icgm/class7.cxx b/filter/source/graphicfilter/icgm/class7.cxx index 54cebd4bdf2b..c85e5284e026 100644 --- a/filter/source/graphicfilter/icgm/class7.cxx +++ b/filter/source/graphicfilter/icgm/class7.cxx @@ -117,7 +117,7 @@ void CGM::ImplDoClass7() if (mpEndValidSource - pAppData < 9) throw css::uno::Exception("attempt to read past end of input", nullptr); - TextEntry* pTextEntry = new TextEntry; + std::unique_ptr<TextEntry> pTextEntry(new TextEntry); pTextEntry->nTypeOfText = *reinterpret_cast<sal_uInt16*>( pAppData ); pTextEntry->nRowOrLineNum = *reinterpret_cast<sal_uInt16*>( pAppData + 2 ); pTextEntry->nColumnNum = *reinterpret_cast<sal_uInt16*>( pAppData + 4 ); @@ -132,7 +132,7 @@ void CGM::ImplDoClass7() memcpy( pTextEntry->pText, pAppData, nLen ); pAppData += nLen; - mpChart->InsertTextEntry( pTextEntry ); + mpChart->InsertTextEntry( std::move(pTextEntry) ); } break; case 0x321 : /*AppData - IOC_TABS */break; |