[Libreoffice-commits] core.git: vcl/skia

Attila Szűcs (via logerrit) logerrit at kemper.freedesktop.org
Thu Jul 1 15:06:04 UTC 2021


 vcl/skia/salbmp.cxx |    2 ++
 1 file changed, 2 insertions(+)

New commits:
commit aa7b1f2ec7da5b94459f808e151085f4d301afd1
Author:     Attila Szűcs <szucs.attila3 at nisz.hu>
AuthorDate: Thu Jul 1 02:58:09 2021 +0200
Commit:     László Németh <nemeth at numbertext.org>
CommitDate: Thu Jul 1 17:05:29 2021 +0200

    tdf#143059 sw export: fix assert crash
    
    Incomplete reset in SkiaSalBitmap::ResetAllData() was
    followed by a broken scaling of a dummy image without
    buffer/image data.
    
    SvxLineStyleToolBoxControl::statusChanged(....) creates
    a dummy image via GetBitmapForUISolidLine... deleted its
    image/buffer data immediately ("no line style" dummy
    image preview for the line style popup list).
    
    But the dummy image wasn't ready, it still needed
    postponed scaling processed by the GPU. This information
    wasn't reset by Erase, and without pixel data it couldn't
    be scaled, so this dummy image became a forever "not ready"/
    "waiting to be scaled" image. There are parts in the code
    that require that the image is already scaled... These parts
    check if scalings are ended with the assert(mPixelsSize == mSize).
    
    Note: Use the following method to start LO with Skia in Linux
    
    SAL_USE_VCLPLUGIN=gen SAL_ENABLESKIA=1 ./soffice
    
    Co-authored-by: Tibor Nagy (NISZ)
    
    Change-Id: I5099eb8671a1c5d16668743f26feb47fe99cd70e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118204
    Tested-by: László Németh <nemeth at numbertext.org>
    Reviewed-by: László Németh <nemeth at numbertext.org>

diff --git a/vcl/skia/salbmp.cxx b/vcl/skia/salbmp.cxx
index fa2cf67ed5d9..3c0c9d32ed99 100644
--- a/vcl/skia/salbmp.cxx
+++ b/vcl/skia/salbmp.cxx
@@ -1289,6 +1289,8 @@ void SkiaSalBitmap::ResetAllData()
     mImage.reset();
     mAlphaImage.reset();
     mEraseColorSet = false;
+    mPixelsSize = mSize;
+    ComputeScanlineSize();
 }
 
 void SkiaSalBitmap::ResetPendingScaling()


More information about the Libreoffice-commits mailing list