From 71c25cae2d46b4f774f0038d6582fe6a076543cf Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 10 Apr 2018 20:46:54 +0200 Subject: [PATCH 1/2] Allow null pen in GeometryImpl. The `pen` parameter to `GeometryImpl.GetRenderBounds` and `StrokeContains` can be null. Don't try to dereference this null! --- src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs index 8f11d1463b..3e89dcc9b7 100644 --- a/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs +++ b/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs @@ -27,7 +27,7 @@ namespace Avalonia.Direct2D1.Media public Rect GetRenderBounds(Avalonia.Media.Pen pen) { var factory = AvaloniaLocator.Current.GetService(); - return Geometry.GetWidenedBounds((float)pen.Thickness).ToAvalonia(); + return Geometry.GetWidenedBounds((float)(pen?.Thickness ?? 0)).ToAvalonia(); } /// @@ -51,7 +51,7 @@ namespace Avalonia.Direct2D1.Media /// public bool StrokeContains(Avalonia.Media.Pen pen, Point point) { - return Geometry.StrokeContainsPoint(point.ToSharpDX(), (float)pen.Thickness); + return Geometry.StrokeContainsPoint(point.ToSharpDX(), (float)(pen?.Thickness ?? 0)); } public ITransformedGeometryImpl WithTransform(Matrix transform) From fef1422fdbab2e29bf04d1f7188b2f697f09c68d Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 10 Apr 2018 21:04:49 +0200 Subject: [PATCH 2/2] Removed unused variable. --- src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs index f057d191b6..120ab71ead 100644 --- a/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs +++ b/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs @@ -24,7 +24,6 @@ namespace Avalonia.Direct2D1.Media /// public Rect GetRenderBounds(Avalonia.Media.Pen pen) { - var factory = AvaloniaLocator.Current.GetService(); return Geometry.GetWidenedBounds((float)(pen?.Thickness ?? 0)).ToAvalonia(); }