Skip to content

Commit 53e105d

Browse files
committed
Fix mis-reading byte-order
1 parent a07c0b7 commit 53e105d

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/MessageStudio/Formats/BinaryText/ImmutableMsbt.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public ImmutableMsbt(ref RevrsReader reader)
4141
if (header.ByteOrderMark is Endianness.Little) {
4242
// Reverse the buffer back to LE
4343
// since it's initially read in BE
44-
reader.Reverse<MsbtHeader, MsbtHeader.Reverser>(0);
44+
reader.Reverse<MsbtHeader, MsbtHeader.DataReverser>(0);
4545
reader.Endianness = Endianness.Little;
4646
}
4747

src/MessageStudio/Formats/BinaryText/Structures/MsbtHeader.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,18 @@ public static void Reverse(in Span<byte> buffer)
4747
buffer[0x12..0x16].Reverse();
4848
}
4949
}
50+
51+
/// <summary>
52+
/// Reverser for only the data,
53+
/// the BoM is not reversed
54+
/// </summary>
55+
public class DataReverser : IStructReverser
56+
{
57+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
58+
public static void Reverse(in Span<byte> buffer)
59+
{
60+
buffer[0x0E..0x10].Reverse();
61+
buffer[0x12..0x16].Reverse();
62+
}
63+
}
5064
}

0 commit comments

Comments
 (0)