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> /// <param name="height">The strip height.</param>
public override void CompressStrip(Span<byte> pixelsAsGray, int height) public override void CompressStrip(Span<byte> pixelsAsGray, int height)
{ {
DebugGuard.Equals(pixelsAsGray.Length / height, this.Width); DebugGuard.IsTrue(pixelsAsGray.Length / height == this.Width, "Values must be equals");
DebugGuard.Equals(pixelsAsGray.Length % height, 0); DebugGuard.IsTrue(pixelsAsGray.Length % height == 0, "Values must be equals");
this.compressedDataBuffer.Clear(); this.compressedDataBuffer.Clear();
Span<byte> compressedData = this.compressedDataBuffer.GetSpan(); 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)] [MethodImpl(InliningOptions.ShortMethod)]
private static void ApplyHorizontalPrediction24Bit(Span<byte> rows, int width) 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; int height = rows.Length / width;
for (int y = 0; y < height; y++) for (int y = 0; y < height; y++)
{ {
@ -81,7 +81,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Compression
[MethodImpl(InliningOptions.ShortMethod)] [MethodImpl(InliningOptions.ShortMethod)]
private static void ApplyHorizontalPrediction8Bit(Span<byte> rows, int width) 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; int height = rows.Length / width;
for (int y = 0; y < height; y++) 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) switch (method)
{ {
case TiffEncoderCompression.None: case TiffEncoderCompression.None:
DebugGuard.Equals(compressionLevel, default(DeflateCompressionLevel)); DebugGuard.IsTrue(compressionLevel == DeflateCompressionLevel.DefaultCompression, "Values must be equals");
DebugGuard.Equals(predictor, TiffPredictor.None); DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
return new NoCompressor(output); return new NoCompressor(output);
case TiffEncoderCompression.PackBits: case TiffEncoderCompression.PackBits:
DebugGuard.Equals(compressionLevel, default(DeflateCompressionLevel)); DebugGuard.IsTrue(compressionLevel == DeflateCompressionLevel.DefaultCompression, "Values must be equals");
DebugGuard.Equals(predictor, TiffPredictor.None); DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
return new PackBitsCompressor(output, allocator, width, bitsPerPixel); return new PackBitsCompressor(output, allocator, width, bitsPerPixel);
case TiffEncoderCompression.Deflate: case TiffEncoderCompression.Deflate:
return new DeflateCompressor(output, allocator, width, bitsPerPixel, predictor, compressionLevel); return new DeflateCompressor(output, allocator, width, bitsPerPixel, predictor, compressionLevel);
case TiffEncoderCompression.Lzw: 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); return new LzwCompressor(output, allocator, width, bitsPerPixel, predictor);
case TiffEncoderCompression.CcittGroup3Fax: case TiffEncoderCompression.CcittGroup3Fax:
DebugGuard.Equals(compressionLevel, default(DeflateCompressionLevel)); DebugGuard.IsTrue(compressionLevel == DeflateCompressionLevel.DefaultCompression, "Values must be equals");
DebugGuard.Equals(predictor, TiffPredictor.None); DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
return new T4BitCompressor(output, allocator, width, bitsPerPixel, false); return new T4BitCompressor(output, allocator, width, bitsPerPixel, false);
case TiffEncoderCompression.ModifiedHuffman: case TiffEncoderCompression.ModifiedHuffman:
DebugGuard.Equals(compressionLevel, default(DeflateCompressionLevel)); DebugGuard.IsTrue(compressionLevel == DeflateCompressionLevel.DefaultCompression, "Values must be equals");
DebugGuard.Equals(predictor, TiffPredictor.None); DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
return new T4BitCompressor(output, allocator, width, bitsPerPixel, true); return new T4BitCompressor(output, allocator, width, bitsPerPixel, true);
default: default:

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

@ -21,31 +21,29 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Compression
switch (method) switch (method)
{ {
case TiffDecoderCompressionType.None: case TiffDecoderCompressionType.None:
DebugGuard.Equals(predictor, TiffPredictor.None); DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None); DebugGuard.IsTrue(faxOptions == FaxCompressionOptions.None, "Values must be equals");
return new NoneTiffCompression(); return new NoneTiffCompression();
case TiffDecoderCompressionType.PackBits: case TiffDecoderCompressionType.PackBits:
DebugGuard.Equals(predictor, TiffPredictor.None); DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None); DebugGuard.IsTrue(faxOptions == FaxCompressionOptions.None, "Values must be equals");
return new PackBitsTiffCompression(allocator); return new PackBitsTiffCompression(allocator);
case TiffDecoderCompressionType.Deflate: case TiffDecoderCompressionType.Deflate:
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None); DebugGuard.IsTrue(faxOptions == FaxCompressionOptions.None, "Values must be equals");
return new DeflateTiffCompression(allocator, width, bitsPerPixel, predictor); return new DeflateTiffCompression(allocator, width, bitsPerPixel, predictor);
case TiffDecoderCompressionType.Lzw: case TiffDecoderCompressionType.Lzw:
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None); DebugGuard.IsTrue(faxOptions == FaxCompressionOptions.None, "Values must be equals");
return new LzwTiffCompression(allocator, width, bitsPerPixel, predictor); return new LzwTiffCompression(allocator, width, bitsPerPixel, predictor);
case TiffDecoderCompressionType.T4: case TiffDecoderCompressionType.T4:
DebugGuard.Equals(predictor, TiffPredictor.None); DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None);
return new T4TiffCompression(allocator, faxOptions, photometricInterpretation, width); return new T4TiffCompression(allocator, faxOptions, photometricInterpretation, width);
case TiffDecoderCompressionType.HuffmanRle: case TiffDecoderCompressionType.HuffmanRle:
DebugGuard.Equals(predictor, TiffPredictor.None); DebugGuard.IsTrue(predictor == TiffPredictor.None, "Values must be equals");
DebugGuard.Equals(faxOptions, FaxCompressionOptions.None);
return new ModifiedHuffmanTiffCompression(allocator, photometricInterpretation, width); return new ModifiedHuffmanTiffCompression(allocator, photometricInterpretation, width);
default: 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) 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; int stripsCount = (this.Image.Height + rowsPerStrip - 1) / rowsPerStrip;
uint[] stripOffsets = new uint[stripsCount]; uint[] stripOffsets = new uint[stripsCount];
@ -59,7 +59,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff.Writers
stripIndex++; stripIndex++;
} }
DebugGuard.Equals(stripIndex, stripsCount); DebugGuard.IsTrue(stripIndex == stripsCount, "Values must be equals");
this.AddStripTags(rowsPerStrip, stripOffsets, stripByteCounts); this.AddStripTags(rowsPerStrip, stripOffsets, stripByteCounts);
} }

Loading…
Cancel
Save