diff options
author | Noel Grandin <noel@peralex.com> | 2021-02-24 10:11:38 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-02-24 19:21:01 +0100 |
commit | e9db00584d30411ae07cfe8aa9660ba3636cc39a (patch) | |
tree | 4d7092acd88f7e586aab95ae9e4eccfe854ba7ce /vcl | |
parent | 7f9e98c7aa6adf592f0772bb5207d101b108701a (diff) |
use unique_ptr in WinSalBitmap
Change-Id: I8ca55870094443f7eb670df06de34ad0ed87ad8c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111445
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/win/gdi/salbmp.cxx | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/vcl/win/gdi/salbmp.cxx b/vcl/win/gdi/salbmp.cxx index 2418c10a1770..2f427cc5e70d 100644 --- a/vcl/win/gdi/salbmp.cxx +++ b/vcl/win/gdi/salbmp.cxx @@ -237,14 +237,14 @@ Gdiplus::Bitmap* WinSalBitmap::ImplCreateGdiPlusBitmap() { Gdiplus::Bitmap* pRetval(nullptr); WinSalBitmap* pSalRGB = this; - WinSalBitmap* pExtraWinSalRGB = nullptr; + std::unique_ptr<WinSalBitmap> pExtraWinSalRGB; if(!pSalRGB->ImplGethDIB()) { // we need DIB for success with AcquireBuffer, create a replacement WinSalBitmap - pExtraWinSalRGB = new WinSalBitmap(); + pExtraWinSalRGB.reset(new WinSalBitmap()); pExtraWinSalRGB->Create(*pSalRGB, pSalRGB->GetBitCount()); - pSalRGB = pExtraWinSalRGB; + pSalRGB = pExtraWinSalRGB.get(); } BitmapBuffer* pRGB = pSalRGB->AcquireBuffer(BitmapAccessMode::Read); @@ -313,11 +313,6 @@ Gdiplus::Bitmap* WinSalBitmap::ImplCreateGdiPlusBitmap() pSalRGB->ReleaseBuffer(pRGB, BitmapAccessMode::Read); } - if(pExtraWinSalRGB) - { - delete pExtraWinSalRGB; - } - return pRetval; } @@ -325,14 +320,14 @@ Gdiplus::Bitmap* WinSalBitmap::ImplCreateGdiPlusBitmap(const WinSalBitmap& rAlph { Gdiplus::Bitmap* pRetval(nullptr); WinSalBitmap* pSalRGB = this; - WinSalBitmap* pExtraWinSalRGB = nullptr; + std::unique_ptr<WinSalBitmap> pExtraWinSalRGB; if(!pSalRGB->ImplGethDIB()) { // we need DIB for success with AcquireBuffer, create a replacement WinSalBitmap - pExtraWinSalRGB = new WinSalBitmap(); + pExtraWinSalRGB.reset(new WinSalBitmap()); pExtraWinSalRGB->Create(*pSalRGB, pSalRGB->GetBitCount()); - pSalRGB = pExtraWinSalRGB; + pSalRGB = pExtraWinSalRGB.get(); } BitmapBuffer* pRGB = pSalRGB->AcquireBuffer(BitmapAccessMode::Read); @@ -352,14 +347,14 @@ Gdiplus::Bitmap* WinSalBitmap::ImplCreateGdiPlusBitmap(const WinSalBitmap& rAlph } WinSalBitmap* pSalA = const_cast< WinSalBitmap* >(&rAlphaSource); - WinSalBitmap* pExtraWinSalA = nullptr; + std::unique_ptr<WinSalBitmap> pExtraWinSalA; if(!pSalA->ImplGethDIB()) { // we need DIB for success with AcquireBuffer, create a replacement WinSalBitmap - pExtraWinSalA = new WinSalBitmap(); + pExtraWinSalA.reset(new WinSalBitmap()); pExtraWinSalA->Create(*pSalA, pSalA->GetBitCount()); - pSalA = pExtraWinSalA; + pSalA = pExtraWinSalA.get(); } BitmapBuffer* pA = pSalA->AcquireBuffer(BitmapAccessMode::Read); @@ -447,10 +442,7 @@ Gdiplus::Bitmap* WinSalBitmap::ImplCreateGdiPlusBitmap(const WinSalBitmap& rAlph pSalA->ReleaseBuffer(pA, BitmapAccessMode::Read); } - if(pExtraWinSalA) - { - delete pExtraWinSalA; - } + pExtraWinSalA.reset(); if(pExtraRGB) { @@ -464,10 +456,7 @@ Gdiplus::Bitmap* WinSalBitmap::ImplCreateGdiPlusBitmap(const WinSalBitmap& rAlph pSalRGB->ReleaseBuffer(pRGB, BitmapAccessMode::Read); } - if(pExtraWinSalRGB) - { - delete pExtraWinSalRGB; - } + pExtraWinSalRGB.reset(); return pRetval; } |