[Libreoffice-commits] core.git: vcl/inc vcl/win
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Fri Jan 18 15:39:30 UTC 2019
vcl/inc/win/scoped_gdi.hxx | 1 +
vcl/win/gdi/gdiimpl.cxx | 20 +++++++-------------
2 files changed, 8 insertions(+), 13 deletions(-)
New commits:
commit 643edcb11d635e09042d82d191279b6b1c2f25a9
Author: Dmitriy Shilin <dshil at fastmail.com>
AuthorDate: Mon Jan 7 01:10:27 2019 -0800
Commit: Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Fri Jan 18 16:39:03 2019 +0100
tdf#107792 vcl/win: introduce ScopedHBITMAP
Change-Id: I2af507d9b924644d3a0e8a4bf2e92ca4b8a9a1b4
Reviewed-on: https://gerrit.libreoffice.org/65929
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
diff --git a/vcl/inc/win/scoped_gdi.hxx b/vcl/inc/win/scoped_gdi.hxx
index 34e0e60a33c4..0fb82112e68c 100644
--- a/vcl/inc/win/scoped_gdi.hxx
+++ b/vcl/inc/win/scoped_gdi.hxx
@@ -29,6 +29,7 @@ using ScopedHRGN = ScopedGDI<HRGN, DeleteRegion>;
using ScopedHDC = ScopedGDI<HDC, DeleteDC>;
using ScopedHPEN = ScopedGDI<HPEN, DeletePen>;
using ScopedHFONT = ScopedGDI<HFONT, DeleteFont>;
+using ScopedHBITMAP = ScopedGDI<HBITMAP, DeleteBitmap>;
template <typename ScopedH, auto SelectorFunc> class ScopedSelectedGDI
{
diff --git a/vcl/win/gdi/gdiimpl.cxx b/vcl/win/gdi/gdiimpl.cxx
index e5013631d9ed..a9406729fa21 100644
--- a/vcl/win/gdi/gdiimpl.cxx
+++ b/vcl/win/gdi/gdiimpl.cxx
@@ -678,17 +678,18 @@ void WinSalGraphicsImpl::drawBitmap( const SalTwoRect& rPosAry,
int nDstWidth = static_cast<int>(aPosAry.mnDestWidth);
int nDstHeight = static_cast<int>(aPosAry.mnDestHeight);
HDC hDC = mrParent.getHDC();
- HBITMAP hMemBitmap = nullptr;
- HBITMAP hMaskBitmap = nullptr;
+
+ ScopedHBITMAP hMemBitmap;
+ ScopedHBITMAP hMaskBitmap;
if( ( nDstWidth > CACHED_HDC_DEFEXT ) || ( nDstHeight > CACHED_HDC_DEFEXT ) )
{
- hMemBitmap = CreateCompatibleBitmap( hDC, nDstWidth, nDstHeight );
- hMaskBitmap = CreateCompatibleBitmap( hDC, nDstWidth, nDstHeight );
+ hMemBitmap.reset(CreateCompatibleBitmap(hDC, nDstWidth, nDstHeight));
+ hMaskBitmap.reset(CreateCompatibleBitmap(hDC, nDstWidth, nDstHeight));
}
- HDC hMemDC = ImplGetCachedDC( CACHED_HDC_1, hMemBitmap );
- HDC hMaskDC = ImplGetCachedDC( CACHED_HDC_2, hMaskBitmap );
+ HDC hMemDC = ImplGetCachedDC( CACHED_HDC_1, hMemBitmap.get() );
+ HDC hMaskDC = ImplGetCachedDC( CACHED_HDC_2, hMaskBitmap.get() );
aPosAry.mnDestX = aPosAry.mnDestY = 0;
BitBlt( hMemDC, 0, 0, nDstWidth, nDstHeight, hDC, nDstX, nDstY, SRCCOPY );
@@ -729,13 +730,6 @@ void WinSalGraphicsImpl::drawBitmap( const SalTwoRect& rPosAry,
ImplReleaseCachedDC( CACHED_HDC_1 );
ImplReleaseCachedDC( CACHED_HDC_2 );
-
- // hMemBitmap != 0 ==> hMaskBitmap != 0
- if( hMemBitmap )
- {
- DeleteObject( hMemBitmap );
- DeleteObject( hMaskBitmap );
- }
}
bool WinSalGraphicsImpl::drawAlphaRect( long nX, long nY, long nWidth,
More information about the Libreoffice-commits
mailing list