Browse Source

Favor Unsafe.As to pinning

pull/530/head
Jason Nelson 8 years ago
parent
commit
b01cb9d047
  1. 8
      src/ImageSharp/Formats/Bmp/BmpFileHeader.cs
  2. 8
      src/ImageSharp/Formats/Bmp/BmpInfoHeader.cs

8
src/ImageSharp/Formats/Bmp/BmpFileHeader.cs

@ -2,6 +2,7 @@
// Licensed under the Apache License, Version 2.0.
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace SixLabors.ImageSharp.Formats.Bmp
@ -63,10 +64,9 @@ namespace SixLabors.ImageSharp.Formats.Bmp
public unsafe void WriteTo(Span<byte> buffer)
{
fixed (BmpFileHeader* pointer = &this)
{
MemoryMarshal.AsBytes(new ReadOnlySpan<BmpFileHeader>(pointer, 1)).CopyTo(buffer);
}
ref BmpFileHeader dest = ref Unsafe.As<byte, BmpFileHeader>(ref MemoryMarshal.GetReference(buffer));
dest = this;
}
}
}

8
src/ImageSharp/Formats/Bmp/BmpInfoHeader.cs

@ -2,6 +2,7 @@
// Licensed under the Apache License, Version 2.0.
using System;
using System.Buffers.Binary;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace SixLabors.ImageSharp.Formats.Bmp
@ -152,10 +153,9 @@ namespace SixLabors.ImageSharp.Formats.Bmp
public unsafe void WriteTo(Span<byte> buffer)
{
fixed (BmpInfoHeader* pointer = &this)
{
MemoryMarshal.AsBytes(new ReadOnlySpan<BmpInfoHeader>(pointer, 1)).CopyTo(buffer);
}
ref BmpInfoHeader dest = ref Unsafe.As<byte, BmpInfoHeader>(ref MemoryMarshal.GetReference(buffer));
dest = this;
}
}
}
Loading…
Cancel
Save