diff options
author | Dmitriy Shilin <dshil@fastmail.com> | 2019-01-19 22:52:35 -0800 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2019-01-20 11:12:29 +0100 |
commit | b940eb5903f583089e99042d60ceae635ae2af83 (patch) | |
tree | ae3fb4b22b21515e7badc7483e87c1a9d269059b | |
parent | 64b801244aee9855e26487246cd7ab79dc78b933 (diff) |
tdf#107792 vcl/win: do not afraid to delete stock objects
Calling the DeleteObject function with a stock object does nothing [1].
1. https://docs.microsoft.com/en-us/previous-versions/ms969928(v=msdn.10)
Change-Id: Icfa1eb834dae33132ff49633035d52606e0cc236
Reviewed-on: https://gerrit.libreoffice.org/66646
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r-- | vcl/win/gdi/gdiimpl.cxx | 46 | ||||
-rw-r--r-- | vcl/win/gdi/gdiimpl.hxx | 2 |
2 files changed, 6 insertions, 42 deletions
diff --git a/vcl/win/gdi/gdiimpl.cxx b/vcl/win/gdi/gdiimpl.cxx index a9406729fa21..b3f5b0735bb0 100644 --- a/vcl/win/gdi/gdiimpl.cxx +++ b/vcl/win/gdi/gdiimpl.cxx @@ -210,9 +210,7 @@ WinSalGraphicsImpl::WinSalGraphicsImpl(WinSalGraphics& rParent): mbXORMode(false), mbPen(false), mhPen(nullptr), - mbStockPen(false), mbBrush(false), - mbStockBrush(false), mhBrush(nullptr) { } @@ -220,16 +218,10 @@ WinSalGraphicsImpl::WinSalGraphicsImpl(WinSalGraphics& rParent): WinSalGraphicsImpl::~WinSalGraphicsImpl() { if ( mhPen ) - { - if ( !mbStockPen ) - DeletePen( mhPen ); - } + DeletePen( mhPen ); if ( mhBrush ) - { - if ( !mbStockBrush ) - DeleteBrush( mhBrush ); - } + DeleteBrush( mhBrush ); } void WinSalGraphicsImpl::Init() @@ -1286,7 +1278,6 @@ void WinSalGraphicsImpl::SetLineColor() // set new data mbPen = FALSE; - mbStockPen = TRUE; } void WinSalGraphicsImpl::SetLineColor(Color nColor) @@ -1294,12 +1285,8 @@ void WinSalGraphicsImpl::SetLineColor(Color nColor) COLORREF nPenColor = PALETTERGB(nColor.GetRed(), nColor.GetGreen(), nColor.GetBlue()); - bool bStockPen = false; - HPEN hNewPen = SearchStockPen(nPenColor); - if (hNewPen) - bStockPen = true; - else + if (!hNewPen) hNewPen = MakePen(nColor); ResetPen(hNewPen); @@ -1308,7 +1295,6 @@ void WinSalGraphicsImpl::SetLineColor(Color nColor) mnPenColor = nPenColor; maLineColor = nColor; mbPen = TRUE; - mbStockPen = bStockPen; } HPEN WinSalGraphicsImpl::SearchStockPen(COLORREF nPenColor) @@ -1350,16 +1336,9 @@ void WinSalGraphicsImpl::ResetPen(HPEN hNewPen) HPEN hOldPen = SelectPen(mrParent.getHDC(), hNewPen); if (mhPen) - { - if (!mbStockPen) - { - DeletePen(mhPen); - } - } + DeletePen(mhPen); else - { mrParent.mhDefPen = hOldPen; - } mhPen = hNewPen; } @@ -1370,7 +1349,6 @@ void WinSalGraphicsImpl::SetFillColor() // set new data mbBrush = FALSE; - mbStockBrush = TRUE; } void WinSalGraphicsImpl::SetFillColor(Color nColor) @@ -1378,12 +1356,8 @@ void WinSalGraphicsImpl::SetFillColor(Color nColor) COLORREF nBrushColor = PALETTERGB(nColor.GetRed(), nColor.GetGreen(), nColor.GetBlue()); - bool bStockBrush = false; - HBRUSH hNewBrush = SearchStockBrush(nBrushColor); - if (hNewBrush) - bStockBrush = true; - else + if (!hNewBrush) hNewBrush = MakeBrush(nColor); ResetBrush(hNewBrush); @@ -1392,7 +1366,6 @@ void WinSalGraphicsImpl::SetFillColor(Color nColor) mnBrushColor = nBrushColor; maFillColor = nColor; mbBrush = TRUE; - mbStockBrush = bStockBrush; } HBRUSH WinSalGraphicsImpl::SearchStockBrush(COLORREF nBrushColor) @@ -1525,16 +1498,9 @@ void WinSalGraphicsImpl::ResetBrush(HBRUSH hNewBrush) HBRUSH hOldBrush = SelectBrush(mrParent.getHDC(), hNewBrush); if (mhBrush) - { - if (!mbStockBrush) - { - DeleteBrush(mhBrush); - } - } + DeleteBrush(mhBrush); else - { mrParent.mhDefBrush = hOldBrush; - } mhBrush = hNewBrush; } diff --git a/vcl/win/gdi/gdiimpl.hxx b/vcl/win/gdi/gdiimpl.hxx index f1cd729daf1b..e96b226457f7 100644 --- a/vcl/win/gdi/gdiimpl.hxx +++ b/vcl/win/gdi/gdiimpl.hxx @@ -38,9 +38,7 @@ private: bool mbXORMode : 1; // _every_ output with RasterOp XOR bool mbPen : 1; // is Pen (FALSE == NULL_PEN) HPEN mhPen; // Pen - bool mbStockPen : 1; // is Pen a stockpen bool mbBrush : 1; // is Brush (FALSE == NULL_BRUSH) - bool mbStockBrush : 1; // is Brush a stockbrush HBRUSH mhBrush; // Brush COLORREF mnPenColor; // PenColor COLORREF mnBrushColor; // BrushColor |