summaryrefslogtreecommitdiff
path: root/vcl/source/gdi/bmpacc.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/source/gdi/bmpacc.cxx')
-rw-r--r--vcl/source/gdi/bmpacc.cxx13
1 files changed, 9 insertions, 4 deletions
diff --git a/vcl/source/gdi/bmpacc.cxx b/vcl/source/gdi/bmpacc.cxx
index ba7a1923e4ca..f970c93428ce 100644
--- a/vcl/source/gdi/bmpacc.cxx
+++ b/vcl/source/gdi/bmpacc.cxx
@@ -40,11 +40,16 @@ BitmapInfoAccess::BitmapInfoAccess( Bitmap& rBitmap, BitmapAccessMode nMode ) :
if( !xImpBmp )
return;
- if( mnAccessMode == BitmapAccessMode::Write && xImpBmp.use_count() > 2 )
+ if (mnAccessMode == BitmapAccessMode::Write)
{
- xImpBmp.reset();
- rBitmap.ImplMakeUnique();
- xImpBmp = rBitmap.ImplGetSalBitmap();
+ xImpBmp->DropScaledCache();
+
+ if (xImpBmp.use_count() > 2)
+ {
+ xImpBmp.reset();
+ rBitmap.ImplMakeUnique();
+ xImpBmp = rBitmap.ImplGetSalBitmap();
+ }
}
mpBuffer = xImpBmp->AcquireBuffer( mnAccessMode );