diff options
author | Caolán McNamara <caolanm@redhat.com> | 2023-05-07 15:13:05 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2023-05-07 17:23:46 +0200 |
commit | 863d7317a16bdc5a491a1284386abe3dd1f09469 (patch) | |
tree | 1230a9411d1e88113c89a9dbfe1f4bc656f57afd /vcl/skia/osx | |
parent | 6a45cb6a037356b891bd13d3f633f83962df7abf (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.cxx | 18 |
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()), |