From ef3a2e634ca81f5fb292f88c4d7eb28d170ce3dd Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Thu, 16 Nov 2017 09:51:07 +0200 Subject: loplugin:useuniqueptr in MultiSalLayout Change-Id: I57ac9cf988dfccfcb38c69ca9c66c2ad77bbdada Reviewed-on: https://gerrit.libreoffice.org/44819 Tested-by: Jenkins Reviewed-by: Noel Grandin --- vcl/inc/sallayout.hxx | 3 ++- vcl/source/gdi/sallayout.cxx | 10 ++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/vcl/inc/sallayout.hxx b/vcl/inc/sallayout.hxx index 04d488d45fff..ff008c44dd55 100644 --- a/vcl/inc/sallayout.hxx +++ b/vcl/inc/sallayout.hxx @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -243,7 +244,7 @@ private: MultiSalLayout& operator=( const MultiSalLayout& ) = delete; private: - SalLayout* mpLayouts[ MAX_FALLBACK ]; + std::unique_ptr mpLayouts[ MAX_FALLBACK ]; const PhysicalFontFace* mpFallbackFonts[ MAX_FALLBACK ]; ImplLayoutRuns maFallbackRuns[ MAX_FALLBACK ]; int mnLevel; diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx index 6184d18e2ca9..b8957ae14eb3 100644 --- a/vcl/source/gdi/sallayout.cxx +++ b/vcl/source/gdi/sallayout.cxx @@ -1031,7 +1031,7 @@ MultiSalLayout::MultiSalLayout( std::unique_ptr pBaseLayout ) { //maFallbackRuns[0].Clear(); mpFallbackFonts[ 0 ] = nullptr; - mpLayouts[ 0 ] = pBaseLayout.release(); + mpLayouts[ 0 ] = std::move(pBaseLayout); mnUnitsPerPixel = mpLayouts[ 0 ]->GetUnitsPerPixel(); } @@ -1043,8 +1043,6 @@ void MultiSalLayout::SetIncomplete(bool bIncomplete) MultiSalLayout::~MultiSalLayout() { - for( int i = 0; i < mnLevel; ++i ) - delete mpLayouts[ i ]; } void MultiSalLayout::AddFallback( std::unique_ptr pFallback, @@ -1054,7 +1052,7 @@ void MultiSalLayout::AddFallback( std::unique_ptr pFallback, return; mpFallbackFonts[ mnLevel ] = pFallbackFont; - mpLayouts[ mnLevel ] = pFallback.release(); + mpLayouts[ mnLevel ] = std::move(pFallback); maFallbackRuns[ mnLevel-1 ] = rFallbackRuns; ++mnLevel; } @@ -1187,14 +1185,14 @@ void MultiSalLayout::AdjustLayout( ImplLayoutArgs& rArgs ) if( (n > 0) && !nValid[ nLevel ] ) { // an empty fallback layout can be released - delete mpLayouts[n]; + mpLayouts[n].reset(); } else { // reshuffle used fallbacks if needed if( nLevel != n ) { - mpLayouts[ nLevel ] = mpLayouts[ n ]; + mpLayouts[ nLevel ] = std::move(mpLayouts[ n ]); mpFallbackFonts[ nLevel ] = mpFallbackFonts[ n ]; maFallbackRuns[ nLevel ] = maFallbackRuns[ n ]; } -- cgit