From 9d95f2ca13ffaf7468284a2ca93f75cbb3d52b3c Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Mon, 4 Mar 2024 11:11:48 -0500 Subject: [PATCH] Make helper method for array segment --- SabreTools.Hashing/HashWrapper.cs | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/SabreTools.Hashing/HashWrapper.cs b/SabreTools.Hashing/HashWrapper.cs index 6ec8d78..11dcf1b 100644 --- a/SabreTools.Hashing/HashWrapper.cs +++ b/SabreTools.Hashing/HashWrapper.cs @@ -137,14 +137,8 @@ namespace SabreTools.Hashing break; case IChecksum ic: -#if NET452_OR_GREATER || NETCOREAPP - var icBufferSpan = new ReadOnlySpan(buffer, offset, size); - byte[] trimmedBuffer = icBufferSpan.ToArray(); -#else - byte[] trimmedBuffer = new byte[size]; - Array.Copy(buffer, offset, trimmedBuffer, 0, size); -#endif - ic.Update(trimmedBuffer); + byte[] icBuffer = GetArraySegment(buffer, offset, size); + ic.Update(icBuffer); break; #if NET462_OR_GREATER || NETCOREAPP @@ -208,6 +202,21 @@ namespace SabreTools.Hashing } } + /// + /// Get a segment from the array based on an offset and size + /// + private static byte[] GetArraySegment(byte[] buffer, int offset, int size) + { +#if NET452_OR_GREATER || NETCOREAPP + var icBufferSpan = new ReadOnlySpan(buffer, offset, size); + byte[] trimmedBuffer = icBufferSpan.ToArray(); +#else + byte[] trimmedBuffer = new byte[size]; + Array.Copy(buffer, offset, trimmedBuffer, 0, size); +#endif + return trimmedBuffer; + } + #endregion } } \ No newline at end of file