summaryrefslogtreecommitdiff
path: root/vcl/skia/osx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2023-05-07 15:13:05 +0100
committerCaolán McNamara <caolanm@redhat.com>2023-05-07 17:23:46 +0200
commit863d7317a16bdc5a491a1284386abe3dd1f09469 (patch)
tree1230a9411d1e88113c89a9dbfe1f4bc656f57afd /vcl/skia/osx
parent6a45cb6a037356b891bd13d3f633f83962df7abf (diff)
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 <caolanm@redhat.com>
Diffstat (limited to 'vcl/skia/osx')
-rw-r--r--vcl/skia/osx/gdiimpl.cxx18
1 files changed, 12 insertions, 6 deletions
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()),