Browse Source

Don't dispose geometry impls.

We can't do this until we have ref counting infrastructure in, as the impls may still be in use by the deferred renderer.
pull/1349/head
Steven Kirk 8 years ago
parent
commit
52dcd41cd9
  1. 1
      src/Avalonia.Visuals/Media/Geometry.cs
  2. 1
      src/Skia/Avalonia.Skia/GeometryImpl.cs
  3. 2
      src/Skia/Avalonia.Skia/StreamGeometryImpl.cs
  4. 4
      src/Skia/Avalonia.Skia/TransformedGeometryImpl.cs
  5. 2
      src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs
  6. 11
      tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs

1
src/Avalonia.Visuals/Media/Geometry.cs

@ -131,7 +131,6 @@ namespace Avalonia.Media
protected void InvalidateGeometry() protected void InvalidateGeometry()
{ {
_isDirty = true; _isDirty = true;
_platformImpl?.Dispose();
_platformImpl = null; _platformImpl = null;
Changed?.Invoke(this, EventArgs.Empty); Changed?.Invoke(this, EventArgs.Empty);
} }

1
src/Skia/Avalonia.Skia/GeometryImpl.cs

@ -9,7 +9,6 @@ namespace Avalonia.Skia
{ {
public abstract Rect Bounds { get; } public abstract Rect Bounds { get; }
public abstract SKPath EffectivePath { get; } public abstract SKPath EffectivePath { get; }
public abstract void Dispose();
public abstract bool FillContains(Point point); public abstract bool FillContains(Point point);
public abstract Rect GetRenderBounds(Pen pen); public abstract Rect GetRenderBounds(Pen pen);
public abstract IGeometryImpl Intersect(IGeometryImpl geometry); public abstract IGeometryImpl Intersect(IGeometryImpl geometry);

2
src/Skia/Avalonia.Skia/StreamGeometryImpl.cs

@ -28,8 +28,6 @@ namespace Avalonia.Skia
}; };
} }
public override void Dispose() => _path.Dispose();
public IStreamGeometryContextImpl Open() public IStreamGeometryContextImpl Open()
{ {
_path = new SKPath(); _path = new SKPath();

4
src/Skia/Avalonia.Skia/TransformedGeometryImpl.cs

@ -23,10 +23,6 @@ namespace Avalonia.Skia
public override Rect Bounds => SourceGeometry.Bounds.TransformToAABB(Transform); public override Rect Bounds => SourceGeometry.Bounds.TransformToAABB(Transform);
public override void Dispose()
{
}
public override bool FillContains(Point point) public override bool FillContains(Point point)
{ {
// TODO: Not supported by SkiaSharp yet, so use expanded Rect // TODO: Not supported by SkiaSharp yet, so use expanded Rect

2
src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs

@ -23,8 +23,6 @@ namespace Avalonia.Direct2D1.Media
/// <inheritdoc/> /// <inheritdoc/>
public Geometry Geometry { get; } public Geometry Geometry { get; }
public void Dispose() => Geometry.Dispose();
/// <inheritdoc/> /// <inheritdoc/>
public Rect GetRenderBounds(Avalonia.Media.Pen pen) public Rect GetRenderBounds(Avalonia.Media.Pen pen)
{ {

11
tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs

@ -31,17 +31,6 @@ namespace Avalonia.Visuals.UnitTests.Media
Assert.True(raised); Assert.True(raised);
} }
[Fact]
public void Old_PlatformImpl_Is_Disposed_When_Updated()
{
var target = new TestGeometry();
var platformImpl = target.PlatformImpl;
target.Foo = true;
Mock.Get(platformImpl).Verify(x => x.Dispose());
}
[Fact] [Fact]
public void Setting_Transform_Causes_Changed_To_Be_Raised() public void Setting_Transform_Causes_Changed_To_Be_Raised()
{ {

Loading…
Cancel
Save