Browse Source

DebugGuard fixes

pull/1570/head
Ildar Khayrutdinov 5 years ago
parent
commit
5f02fe55f6
  1. 4
      src/ImageSharp/Formats/Tiff/Compression/Compressors/T4BitCompressor.cs
  2. 4
      src/ImageSharp/Formats/Tiff/Compression/HorizontalPredictor.cs
  3. 18
      src/ImageSharp/Formats/Tiff/Compression/TiffCompressorFactory.cs
  4. 18
      src/ImageSharp/Formats/Tiff/Compression/TiffDecompressorsFactory.cs
  5. 4
      src/ImageSharp/Formats/Tiff/Writers/TiffBaseColorWriter.cs

4
src/ImageSharp/Formats/Tiff/Compression/Compressors/T4BitCompressor.cs

@ -215,8 +215,8 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Compression.Compressors
/// <param name="height">The strip height.</param>
public override void CompressStrip(Span<byte> pixelsAsGray, int height)
{
DebugGuard.Equals(pixelsAsGray.Length / height, this.Width);
DebugGuard.Equals(pixelsAsGray.Length % height, 0);
DebugGuard.IsTrue(pixelsAsGray.Length / height == this.Width, "Values must be equals");
DebugGuard.IsTrue(pixelsAsGray.Length % height == 0, "Values must be equals");
this.compressedDataBuffer.Clear();
Span<byte> compressedData = this.compressedDataBuffer.GetSpan();

4
src/ImageSharp/Formats/Tiff/Compression/HorizontalPredictor.cs

@ -55,7 +55,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Compression
[MethodImpl(InliningOptions.ShortMethod)]
private static void ApplyHorizontalPrediction24Bit(Span<byte> rows, int width)
{
DebugGuard.Equals(rows.Length % width, 0);
DebugGuard.IsTrue(rows.Length % width == 0, "Values must be equals");
int height = rows.Length / width;
for (int y = 0; y < height; y++)
{
@ -81,7 +81,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Compression
[MethodImpl(InliningOptions.ShortMethod)]
private static void ApplyHorizontalPrediction8Bit(Span<byte> rows, int width)
{
DebugGuard.Equals(rows.Length % width, 0);
DebugGuard.IsTrue(rows.Length % width == 0, "Values must be equals");
int height = rows.Length / width;
for (int y = 0; y < height; y++)
{

18
src/ImageSharp/Formats/Tiff/Compression/TiffCompressorFactory.cs

@ -26,31 +26,31 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Compression
switch (method)
{
case TiffEncoderCompression.None:
DebugGuard.Equals(compressionLevel, default(DeflateCompressionLevel));
DebugGuard.Equals(predictor, TiffPredictor.None);
DebugGuard.IsTrue(compressionLevel == DeflateCompressionLevel.DefaultCompression, "Values must be equals");
DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
return new NoCompressor(output);
case TiffEncoderCompression.PackBits:
DebugGuard.Equals(compressionLevel, default(DeflateCompressionLevel));
DebugGuard.Equals(predictor, TiffPredictor.None);
DebugGuard.IsTrue(compressionLevel == DeflateCompressionLevel.DefaultCompression, "Values must be equals");
DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
return new PackBitsCompressor(output, allocator, width, bitsPerPixel);
case TiffEncoderCompression.Deflate:
return new DeflateCompressor(output, allocator, width, bitsPerPixel, predictor, compressionLevel);
case TiffEncoderCompression.Lzw:
DebugGuard.Equals(compressionLevel, default(DeflateCompressionLevel));
DebugGuard.IsTrue(compressionLevel == DeflateCompressionLevel.DefaultCompression, "Values must be equals");
return new LzwCompressor(output, allocator, width, bitsPerPixel, predictor);
case TiffEncoderCompression.CcittGroup3Fax:
DebugGuard.Equals(compressionLevel, default(DeflateCompressionLevel));
DebugGuard.Equals(predictor, TiffPredictor.None);
DebugGuard.IsTrue(compressionLevel == DeflateCompressionLevel.DefaultCompression, "Values must be equals");
DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
return new T4BitCompressor(output, allocator, width, bitsPerPixel, false);
case TiffEncoderCompression.ModifiedHuffman:
DebugGuard.Equals(compressionLevel, default(DeflateCompressionLevel));
DebugGuard.Equals(predictor, TiffPredictor.None);
DebugGuard.IsTrue(compressionLevel == DeflateCompressionLevel.DefaultCompression, "Values must be equals");
DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
return new T4BitCompressor(output, allocator, width, bitsPerPixel, true);
default:

18
src/ImageSharp/Formats/Tiff/Compression/TiffDecompressorsFactory.cs

@ -21,31 +21,29 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Compression
switch (method)
{
case TiffDecoderCompressionType.None:
DebugGuard.Equals(predictor, TiffPredictor.None);
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None);
DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
DebugGuard.IsTrue(faxOptions == FaxCompressionOptions.None, "Values must be equals");
return new NoneTiffCompression();
case TiffDecoderCompressionType.PackBits:
DebugGuard.Equals(predictor, TiffPredictor.None);
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None);
DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
DebugGuard.IsTrue(faxOptions == FaxCompressionOptions.None, "Values must be equals");
return new PackBitsTiffCompression(allocator);
case TiffDecoderCompressionType.Deflate:
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None);
DebugGuard.IsTrue(faxOptions == FaxCompressionOptions.None, "Values must be equals");
return new DeflateTiffCompression(allocator, width, bitsPerPixel, predictor);
case TiffDecoderCompressionType.Lzw:
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None);
DebugGuard.IsTrue(faxOptions == FaxCompressionOptions.None, "Values must be equals");
return new LzwTiffCompression(allocator, width, bitsPerPixel, predictor);
case TiffDecoderCompressionType.T4:
DebugGuard.Equals(predictor, TiffPredictor.None);
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None);
DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
return new T4TiffCompression(allocator, faxOptions, photometricInterpretation, width);
case TiffDecoderCompressionType.HuffmanRle:
DebugGuard.Equals(predictor, TiffPredictor.None);
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None);
DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
return new ModifiedHuffmanTiffCompression(allocator, photometricInterpretation, width);
default:

4
src/ImageSharp/Formats/Tiff/Writers/TiffBaseColorWriter.cs

@ -38,7 +38,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Writers
public virtual void Write(TiffBaseCompressor compressor, int rowsPerStrip)
{
DebugGuard.Equals(this.BytesPerRow, compressor.BytesPerRow);
DebugGuard.IsTrue(this.BytesPerRow == compressor.BytesPerRow || compressor.BytesPerRow == 0, "Values must be equals");
int stripsCount = (this.Image.Height + rowsPerStrip - 1) / rowsPerStrip;
uint[] stripOffsets = new uint[stripsCount];
@ -59,7 +59,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Writers
stripIndex++;
}
DebugGuard.Equals(stripIndex, stripsCount);
DebugGuard.IsTrue(stripIndex == stripsCount, "Values must be equals");
this.AddStripTags(rowsPerStrip, stripOffsets, stripByteCounts);
}

Loading…
Cancel
Save