diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-04-30 19:03:33 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-05-02 08:26:21 +0200 |
commit | c4b8edefcf452ad80254b1f76bcfba743b0b486f (patch) | |
tree | a6cad7452c8e38fbcba772b2b8ad345332b75274 /vcl | |
parent | cee2ccb38f0b6d223d9c60da6538f06a84ad6192 (diff) |
loplugin:useuniqueptr in NWPixmapCacheData
Change-Id: Ie71583f2fb1f2471ddeaf7a10572c679a4e5cbe0
Reviewed-on: https://gerrit.libreoffice.org/53707
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/gtk/salnativewidgets-gtk.cxx | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/vcl/unx/gtk/salnativewidgets-gtk.cxx b/vcl/unx/gtk/salnativewidgets-gtk.cxx index 2bd434c862b0..539d8cb5d897 100644 --- a/vcl/unx/gtk/salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk/salnativewidgets-gtk.cxx @@ -329,13 +329,11 @@ public: ControlType m_nType; ControlState m_nState; tools::Rectangle m_pixmapRect; - GdkX11Pixmap* m_pixmap; - GdkX11Pixmap* m_mask; + std::unique_ptr<GdkX11Pixmap> m_pixmap; + std::unique_ptr<GdkX11Pixmap> m_mask; - NWPixmapCacheData() : m_nType(ControlType::Generic), m_nState(ControlState::NONE), m_pixmap(nullptr), m_mask(nullptr) {} - ~NWPixmapCacheData() - { SetPixmap( nullptr, nullptr ); }; - void SetPixmap( GdkX11Pixmap* pPixmap, GdkX11Pixmap* pMask ); + NWPixmapCacheData() : m_nType(ControlType::Generic), m_nState(ControlState::NONE) {} + void SetPixmap( std::unique_ptr<GdkX11Pixmap> pPixmap, std::unique_ptr<GdkX11Pixmap> pMask ); }; class NWPixmapCache @@ -353,7 +351,7 @@ public: int GetSize() const { return m_size; } bool Find( ControlType aType, ControlState aState, const tools::Rectangle& r_pixmapRect, GdkX11Pixmap** pPixmap, GdkX11Pixmap** pMask ); - void Fill( ControlType aType, ControlState aState, const tools::Rectangle& r_pixmapRect, GdkX11Pixmap* pPixmap, GdkX11Pixmap* pMask ); + void Fill( ControlType aType, ControlState aState, const tools::Rectangle& r_pixmapRect, std::unique_ptr<GdkX11Pixmap> pPixmap, std::unique_ptr<GdkX11Pixmap> pMask ); void ThemeChanged(); }; @@ -370,13 +368,10 @@ public: // --- implementation --- -void NWPixmapCacheData::SetPixmap( GdkX11Pixmap* pPixmap, GdkX11Pixmap* pMask ) +void NWPixmapCacheData::SetPixmap( std::unique_ptr<GdkX11Pixmap> pPixmap, std::unique_ptr<GdkX11Pixmap> pMask ) { - delete m_pixmap; - delete m_mask; - - m_pixmap = pPixmap; - m_mask = pMask; + m_pixmap = std::move(pPixmap); + m_mask = std::move(pMask); } NWPixmapCache::NWPixmapCache( SalX11Screen nScreen ) @@ -412,15 +407,17 @@ bool NWPixmapCache::Find( ControlType aType, ControlState aState, const tools:: pData[i].m_pixmapRect.GetHeight() == r_pixmapRect.GetHeight() && pData[i].m_pixmap != nullptr ) { - *pPixmap = pData[i].m_pixmap; - *pMask = pData[i].m_mask; + *pPixmap = pData[i].m_pixmap.get(); + *pMask = pData[i].m_mask.get(); return true; } } return false; } -void NWPixmapCache::Fill( ControlType aType, ControlState aState, const tools::Rectangle& r_pixmapRect, GdkX11Pixmap* pPixmap, GdkX11Pixmap* pMask ) +void NWPixmapCache::Fill( ControlType aType, ControlState aState, const tools::Rectangle& r_pixmapRect, + std::unique_ptr<GdkX11Pixmap> pPixmap, + std::unique_ptr<GdkX11Pixmap> pMask ) { if( !(aState & ControlState::CACHING_ALLOWED) ) return; @@ -430,7 +427,7 @@ void NWPixmapCache::Fill( ControlType aType, ControlState aState, const tools::R pData[m_idx].m_nType = aType; pData[m_idx].m_nState = aState; pData[m_idx].m_pixmapRect = r_pixmapRect; - pData[m_idx].SetPixmap( pPixmap, pMask ); + pData[m_idx].SetPixmap( std::move(pPixmap), std::move(pMask) ); } void NWPixmapCacheList::AddCache( NWPixmapCache* pCache ) @@ -2805,9 +2802,9 @@ bool GtkSalGraphics::NWPaintGTKTabItem( ControlType nType, // cache data if( nType == ControlType::TabItem ) - aCacheItems.Fill( nType, nState, pixmapRect, pixmap, mask ); + aCacheItems.Fill( nType, nState, pixmapRect, std::unique_ptr<GdkX11Pixmap>(pixmap), std::unique_ptr<GdkX11Pixmap>(mask) ); else - aCachePage.Fill( nType, nState, pixmapRect, pixmap, mask ); + aCachePage.Fill( nType, nState, pixmapRect, std::unique_ptr<GdkX11Pixmap>(pixmap), std::unique_ptr<GdkX11Pixmap>(mask) ); return true; } |