Browse Source

Implemented dispose method according to common convention.

pull/1629/head
Dmitry Pentin 5 years ago
parent
commit
e787ffa518
  1. 6
      src/ImageSharp/Image.cs
  2. 6
      src/ImageSharp/ImageFrameCollection.cs
  3. 13
      src/ImageSharp/ImageFrameCollection{TPixel}.cs
  4. 8
      src/ImageSharp/Image{TPixel}.cs

6
src/ImageSharp/Image.cs

@ -87,7 +87,8 @@ namespace SixLabors.ImageSharp
return;
}
this.DisposeManaged();
this.Dispose(true);
GC.SuppressFinalize(this);
this.isDisposed = true;
}
@ -150,7 +151,8 @@ namespace SixLabors.ImageSharp
/// <summary>
/// Internal routine for freeing managed resources called from <see cref="Dispose"/>
/// </summary>
protected abstract void DisposeManaged();
/// /// <param name="disposing">Whether to dispose of managed objects.</param>
protected abstract void Dispose(bool disposing);
/// <summary>
/// Throws <see cref="ObjectDisposedException"/> if the image is disposed.

6
src/ImageSharp/ImageFrameCollection.cs

@ -174,7 +174,8 @@ namespace SixLabors.ImageSharp
return;
}
this.DisposeManaged();
this.Dispose(true);
GC.SuppressFinalize(this);
this.isDisposed = true;
}
@ -204,7 +205,8 @@ namespace SixLabors.ImageSharp
/// <summary>
/// Internal routine for freeing managed resources called from <see cref="Dispose"/>
/// </summary>
protected abstract void DisposeManaged();
/// /// /// <param name="disposing">Whether to dispose of managed objects.</param>
protected abstract void Dispose(bool disposing);
/// <summary>
/// Implements <see cref="GetEnumerator"/>.

13
src/ImageSharp/ImageFrameCollection{TPixel}.cs

@ -396,14 +396,17 @@ namespace SixLabors.ImageSharp
}
/// <inheritdoc/>
protected override void DisposeManaged()
protected override void Dispose(bool disposing)
{
foreach (ImageFrame<TPixel> f in this.frames)
if (disposing)
{
f.Dispose();
}
foreach (ImageFrame<TPixel> f in this.frames)
{
f.Dispose();
}
this.frames.Clear();
this.frames.Clear();
}
}
private ImageFrame<TPixel> CopyNonCompatibleFrame(ImageFrame source)

8
src/ImageSharp/Image{TPixel}.cs

@ -268,7 +268,13 @@ namespace SixLabors.ImageSharp
}
/// <inheritdoc/>
protected override void DisposeManaged() => this.frames.Dispose();
protected override void Dispose(bool disposing)
{
if (disposing)
{
this.frames.Dispose();
}
}
/// <inheritdoc/>
public override string ToString() => $"Image<{typeof(TPixel).Name}>: {this.Width}x{this.Height}";

Loading…
Cancel
Save