vcl/skia/osx/gdiimpl.cxx |   18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

New commits:
commit 863d7317a16bdc5a491a1284386abe3dd1f09469
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Sun May 7 15:13:05 2023 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Sun May 7 17:23:46 2023 +0200

    crash seen with empty moLineColor on macOS with skia
    
    Change-Id: I260f6bd060b9f1ec3a782ff765b676f78d126d40
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151461
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/skia/osx/gdiimpl.cxx b/vcl/skia/osx/gdiimpl.cxx
index e9c2e67fd1a4..fd0bdca04333 100644
--- a/vcl/skia/osx/gdiimpl.cxx
+++ b/vcl/skia/osx/gdiimpl.cxx
@@ -241,12 +241,18 @@ bool 
AquaSkiaSalGraphicsImpl::drawNativeControl(ControlType nType, ControlPart n
     // Setup context state for drawing (performDrawNativeControl() e.g. fills 
background in some cases).
     CGContextSetFillColorSpace(context, GetSalData()->mxRGBSpace);
     CGContextSetStrokeColorSpace(context, GetSalData()->mxRGBSpace);
-    RGBAColor lineColor(*moLineColor);
-    CGContextSetRGBStrokeColor(context, lineColor.GetRed(), 
lineColor.GetGreen(),
-                               lineColor.GetBlue(), lineColor.GetAlpha());
-    RGBAColor fillColor(*moFillColor);
-    CGContextSetRGBFillColor(context, fillColor.GetRed(), 
fillColor.GetGreen(), fillColor.GetBlue(),
-                             fillColor.GetAlpha());
+    if (moLineColor)
+    {
+        RGBAColor lineColor(*moLineColor);
+        CGContextSetRGBStrokeColor(context, lineColor.GetRed(), 
lineColor.GetGreen(),
+                                   lineColor.GetBlue(), lineColor.GetAlpha());
+    }
+    if (moFillColor)
+    {
+        RGBAColor fillColor(*moFillColor);
+        CGContextSetRGBFillColor(context, fillColor.GetRed(), 
fillColor.GetGreen(),
+                                 fillColor.GetBlue(), fillColor.GetAlpha());
+    }
     // Adjust for our drawn-to coordinates in the bitmap.
     tools::Rectangle movedRegion(Point(rControlRegion.getX() - 
boundingRegion.getX(),
                                        rControlRegion.getY() - 
boundingRegion.getY()),

Reply via email to