summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-08-14 10:10:25 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-08-15 08:42:01 +0200
commit92f9fcc99d103a572d42b00a0227e3d8d8303be6 (patch)
tree982c23de3aac011f79a8c8408a72c82197a8a18c /filter
parentaad3b3b067987390b356a6901b85e0bfab46fab8 (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.cxx28
-rw-r--r--filter/source/graphicfilter/icgm/chart.hxx5
-rw-r--r--filter/source/graphicfilter/icgm/class7.cxx4
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;