diff --git a/DiscImageChef.DiscImages/Anex86/Identify.cs b/DiscImageChef.DiscImages/Anex86/Identify.cs index 6f6a9f76f..f408600d6 100644 --- a/DiscImageChef.DiscImages/Anex86/Identify.cs +++ b/DiscImageChef.DiscImages/Anex86/Identify.cs @@ -49,7 +49,7 @@ namespace DiscImageChef.DiscImages byte[] hdrB = new byte[Marshal.SizeOf()]; stream.Read(hdrB, 0, hdrB.Length); - fdihdr = Marshal.ByteArrayToStructureLittleEndian(hdrB); + fdihdr = Marshal.SpanToStructureLittleEndian(hdrB); DicConsole.DebugWriteLine("Anex86 plugin", "fdihdr.unknown = {0}", fdihdr.unknown); DicConsole.DebugWriteLine("Anex86 plugin", "fdihdr.hddtype = {0}", fdihdr.hddtype); diff --git a/DiscImageChef.DiscImages/Anex86/Read.cs b/DiscImageChef.DiscImages/Anex86/Read.cs index df1b38bf6..ee4ea2483 100644 --- a/DiscImageChef.DiscImages/Anex86/Read.cs +++ b/DiscImageChef.DiscImages/Anex86/Read.cs @@ -52,7 +52,7 @@ namespace DiscImageChef.DiscImages byte[] hdrB = new byte[Marshal.SizeOf()]; stream.Read(hdrB, 0, hdrB.Length); - fdihdr = Marshal.ByteArrayToStructureLittleEndian(hdrB); + fdihdr = Marshal.SpanToStructureLittleEndian(hdrB); imageInfo.MediaType = Geometry.GetMediaType(((ushort)fdihdr.cylinders, (byte)fdihdr.heads, (ushort)fdihdr.spt, (uint)fdihdr.bps, MediaEncoding.MFM, diff --git a/DiscImageChef.DiscImages/Anex86/Write.cs b/DiscImageChef.DiscImages/Anex86/Write.cs index dea9952f1..25538e282 100644 --- a/DiscImageChef.DiscImages/Anex86/Write.cs +++ b/DiscImageChef.DiscImages/Anex86/Write.cs @@ -30,15 +30,15 @@ // Copyright © 2011-2019 Natalia Portillo // ****************************************************************************/ -using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Runtime.InteropServices; using DiscImageChef.CommonTypes; using DiscImageChef.CommonTypes.Enums; using DiscImageChef.CommonTypes.Structs; -using DiscImageChef.Helpers; using Schemas; +using Marshal = DiscImageChef.Helpers.Marshal; namespace DiscImageChef.DiscImages { @@ -187,11 +187,8 @@ namespace DiscImageChef.DiscImages } } - byte[] hdr = new byte[Marshal.SizeOf()]; - IntPtr hdrPtr = System.Runtime.InteropServices.Marshal.AllocHGlobal(Marshal.SizeOf()); - System.Runtime.InteropServices.Marshal.StructureToPtr(fdihdr, hdrPtr, true); - System.Runtime.InteropServices.Marshal.Copy(hdrPtr, hdr, 0, hdr.Length); - System.Runtime.InteropServices.Marshal.FreeHGlobal(hdrPtr); + byte[] hdr = new byte[Marshal.SizeOf()]; + MemoryMarshal.Write(hdr, ref fdihdr); writingStream.Seek(0, SeekOrigin.Begin); writingStream.Write(hdr, 0, hdr.Length);