Browse Source

Check for null paint.

`CreatePaint` when passed a `Pen` can return `default` which means that `paint.paint` will be null. Check for this before trying to use it.
pull/5896/head
Steven Kirk 5 years ago
parent
commit
64e0fb7f24
  1. 22
      src/Skia/Avalonia.Skia/DrawingContextImpl.cs

22
src/Skia/Avalonia.Skia/DrawingContextImpl.cs

@ -166,7 +166,10 @@ namespace Avalonia.Skia
{
using (var paint = CreatePaint(_strokePaint, pen, new Size(Math.Abs(p2.X - p1.X), Math.Abs(p2.Y - p1.Y))))
{
Canvas.DrawLine((float) p1.X, (float) p1.Y, (float) p2.X, (float) p2.Y, paint.Paint);
if (paint.Paint is object)
{
Canvas.DrawLine((float)p1.X, (float)p1.Y, (float)p2.X, (float)p2.Y, paint.Paint);
}
}
}
@ -361,7 +364,6 @@ namespace Avalonia.Skia
{
Canvas.DrawRect(rc, paint.Paint);
}
}
}
@ -397,15 +399,17 @@ namespace Avalonia.Skia
{
using (var paint = CreatePaint(_strokePaint, pen, rect.Rect.Size))
{
if (isRounded)
{
Canvas.DrawRoundRect(skRoundRect, paint.Paint);
}
else
if (paint.Paint is object)
{
Canvas.DrawRect(rc, paint.Paint);
if (isRounded)
{
Canvas.DrawRoundRect(skRoundRect, paint.Paint);
}
else
{
Canvas.DrawRect(rc, paint.Paint);
}
}
}
}
}

Loading…
Cancel
Save