From ecbfccf1c90ebe2e813cef2181792533cf8030f0 Mon Sep 17 00:00:00 2001 From: Bradley Grainger Date: Sun, 13 Aug 2023 08:23:16 -0700 Subject: [PATCH] Optimize the implementation of SwapBytes. --- src/MySqlConnector/Utilities/Utility.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/MySqlConnector/Utilities/Utility.cs b/src/MySqlConnector/Utilities/Utility.cs index 6c4e53b9e..c4b9b30d1 100644 --- a/src/MySqlConnector/Utilities/Utility.cs +++ b/src/MySqlConnector/Utilities/Utility.cs @@ -3,6 +3,7 @@ using System.Diagnostics.CodeAnalysis; using System.Net; using System.Reflection; +using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security.Authentication; using System.Security.Cryptography; @@ -512,9 +513,8 @@ public static Task WriteAsync(this Stream stream, ReadOnlyMemory data) public static void SwapBytes(Span bytes, int offset1, int offset2) { - byte swap = bytes[offset1]; - bytes[offset1] = bytes[offset2]; - bytes[offset2] = swap; + ref var first = ref Unsafe.AsRef(bytes[0]); + (Unsafe.Add(ref first, offset2), Unsafe.Add(ref first, offset1)) = (Unsafe.Add(ref first, offset1), Unsafe.Add(ref first, offset2)); } #if NET462