[Libreoffice-commits] core.git: desktop/qa vcl/source

Miklos Vajna vmiklos at collabora.co.uk
Thu Oct 15 08:19:45 PDT 2015


 desktop/qa/desktop_lib/test_desktop_lib.cxx |    8 ++++++++
 vcl/source/outdev/bitmap.cxx                |   11 +++++++----
 2 files changed, 15 insertions(+), 4 deletions(-)

New commits:
commit 293dd731e9815c06ba8eca1fb83d86276103c820
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Oct 15 17:18:28 2015 +0200

    vcl: aAlphaBitmap.ImplGetImpBitmap() seen as 0
    
    Change-Id: I3f34f0315045d33ff6e498e24c0dacb0aabb0ff9

diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index a8c2015..e397e84 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -298,6 +298,14 @@ void DesktopLOKTest::testPaintTile()
     // 256.
     pDocument->pClass->paintTile(pDocument, aBuffer.data(), nCanvasWidth, nCanvasHeight, nTilePosX, nTilePosY, nTileWidth, nTileHeight);
 
+    // This crashed in OutputDevice::DrawDeviceAlphaBitmap().
+    nCanvasWidth = 200;
+    nCanvasHeight = 200;
+    nTileWidth = 4000;
+    nTileHeight = 4000;
+    aBuffer.resize(nCanvasWidth * nCanvasHeight * 4);
+    pDocument->pClass->paintTile(pDocument, aBuffer.data(), nCanvasWidth, nCanvasHeight, nTilePosX, nTilePosY, nTileWidth, nTileHeight);
+
     closeDoc();
 }
 
diff --git a/vcl/source/outdev/bitmap.cxx b/vcl/source/outdev/bitmap.cxx
index eb342c6..9834347 100644
--- a/vcl/source/outdev/bitmap.cxx
+++ b/vcl/source/outdev/bitmap.cxx
@@ -670,11 +670,14 @@ void OutputDevice::DrawDeviceAlphaBitmap( const Bitmap& rBmp, const AlphaMask& r
             if (mpAlphaVDev)
             {
                 Bitmap aAlphaBitmap( mpAlphaVDev->GetBitmap( aRelPt, aOutSz ) );
-                SalBitmap* pSalAlphaBmp2 = aAlphaBitmap.ImplGetImpBitmap()->ImplGetSalBitmap();
-                if (mpGraphics->BlendAlphaBitmap(aTR, *pSalSrcBmp, *pSalAlphaBmp, *pSalAlphaBmp2, this))
+                if (aAlphaBitmap.ImplGetImpBitmap())
                 {
-                    mpAlphaVDev->BlendBitmap(aTR, rAlpha);
-                    return;
+                    SalBitmap* pSalAlphaBmp2 = aAlphaBitmap.ImplGetImpBitmap()->ImplGetSalBitmap();
+                    if (mpGraphics->BlendAlphaBitmap(aTR, *pSalSrcBmp, *pSalAlphaBmp, *pSalAlphaBmp2, this))
+                    {
+                        mpAlphaVDev->BlendBitmap(aTR, rAlpha);
+                        return;
+                    }
                 }
             }
             else


More information about the Libreoffice-commits mailing list