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

6
src/ImageSharp/ImageFrameCollection.cs

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

13
src/ImageSharp/ImageFrameCollection{TPixel}.cs

@ -396,14 +396,17 @@ namespace SixLabors.ImageSharp
} }
/// <inheritdoc/> /// <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) private ImageFrame<TPixel> CopyNonCompatibleFrame(ImageFrame source)

8
src/ImageSharp/Image{TPixel}.cs

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

Loading…
Cancel
Save