From caa0070458d656e989008621e8ebd13b70ab25dd Mon Sep 17 00:00:00 2001 From: Oliver Booth Date: Wed, 23 Aug 2023 16:43:33 +0100 Subject: [PATCH] fix: fix incorrect endian swap --- X10D/src/IO/DoubleExtensions.cs | 8 ++++---- X10D/src/IO/SingleExtensions.cs | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/X10D/src/IO/DoubleExtensions.cs b/X10D/src/IO/DoubleExtensions.cs index 728cada..c42a7ef 100644 --- a/X10D/src/IO/DoubleExtensions.cs +++ b/X10D/src/IO/DoubleExtensions.cs @@ -48,11 +48,11 @@ public static class DoubleExtensions #else if (BitConverter.IsLittleEndian) { - return MemoryMarshal.TryWrite(destination, ref value); + long tmp = BinaryPrimitives.ReverseEndianness(BitConverter.DoubleToInt64Bits(value)); + return MemoryMarshal.TryWrite(destination, ref tmp); } - long tmp = BinaryPrimitives.ReverseEndianness(BitConverter.DoubleToInt64Bits(value)); - return MemoryMarshal.TryWrite(destination, ref tmp); + return MemoryMarshal.TryWrite(destination, ref value); #endif } @@ -67,7 +67,7 @@ public static class DoubleExtensions #if NET5_0_OR_GREATER return BinaryPrimitives.TryWriteDoubleLittleEndian(destination, value); #else - if (!BitConverter.IsLittleEndian) + if (BitConverter.IsLittleEndian) { return MemoryMarshal.TryWrite(destination, ref value); } diff --git a/X10D/src/IO/SingleExtensions.cs b/X10D/src/IO/SingleExtensions.cs index d799261..539e919 100644 --- a/X10D/src/IO/SingleExtensions.cs +++ b/X10D/src/IO/SingleExtensions.cs @@ -50,11 +50,11 @@ public static class SingleExtensions #else if (BitConverter.IsLittleEndian) { - return MemoryMarshal.TryWrite(destination, ref value); + int tmp = BinaryPrimitives.ReverseEndianness(BitConverter.SingleToInt32Bits(value)); + return MemoryMarshal.TryWrite(destination, ref tmp); } - int tmp = BinaryPrimitives.ReverseEndianness(BitConverter.SingleToInt32Bits(value)); - return MemoryMarshal.TryWrite(destination, ref tmp); + return MemoryMarshal.TryWrite(destination, ref value); #endif } @@ -69,7 +69,7 @@ public static class SingleExtensions #if NET5_0_OR_GREATER return BinaryPrimitives.TryWriteSingleLittleEndian(destination, value); #else - if (!BitConverter.IsLittleEndian) + if (BitConverter.IsLittleEndian) { return MemoryMarshal.TryWrite(destination, ref value); }