From 5e0ceaa593c4a8b9c3f400a7b6c4d691c2796000 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Mon, 23 Nov 2020 01:48:39 +0000 Subject: [PATCH] Fix Numerics fallback logic for 32 bit --- src/ImageSharp/Common/Helpers/Numerics.cs | 40 +++++++++++------------ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/ImageSharp/Common/Helpers/Numerics.cs b/src/ImageSharp/Common/Helpers/Numerics.cs index da226db11..2a9b5ca08 100644 --- a/src/ImageSharp/Common/Helpers/Numerics.cs +++ b/src/ImageSharp/Common/Helpers/Numerics.cs @@ -275,13 +275,13 @@ namespace SixLabors.ImageSharp [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Clamp(Span span, byte min, byte max) { - int reduced = ClampReduce(span, min, max); + Span remainder = span.Slice(ClampReduce(span, min, max)); - if (reduced > 0) + if (remainder.Length > 0) { - for (int i = reduced; i < span.Length; i++) + for (int i = 0; i < remainder.Length; i++) { - ref byte v = ref span[i]; + ref byte v = ref remainder[i]; v = Clamp(v, min, max); } } @@ -296,13 +296,13 @@ namespace SixLabors.ImageSharp [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Clamp(Span span, uint min, uint max) { - int reduced = ClampReduce(span, min, max); + Span remainder = span.Slice(ClampReduce(span, min, max)); - if (reduced > 0) + if (remainder.Length > 0) { - for (int i = reduced; i < span.Length; i++) + for (int i = 0; i < remainder.Length; i++) { - ref uint v = ref span[i]; + ref uint v = ref remainder[i]; v = Clamp(v, min, max); } } @@ -317,13 +317,13 @@ namespace SixLabors.ImageSharp [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Clamp(Span span, int min, int max) { - int reduced = ClampReduce(span, min, max); + Span remainder = span.Slice(ClampReduce(span, min, max)); - if (reduced > 0) + if (remainder.Length > 0) { - for (int i = reduced; i < span.Length; i++) + for (int i = 0; i < remainder.Length; i++) { - ref int v = ref span[i]; + ref int v = ref remainder[i]; v = Clamp(v, min, max); } } @@ -338,13 +338,13 @@ namespace SixLabors.ImageSharp [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Clamp(Span span, float min, float max) { - int reduced = ClampReduce(span, min, max); + Span remainder = span.Slice(ClampReduce(span, min, max)); - if (reduced > 0) + if (remainder.Length > 0) { - for (int i = reduced; i < span.Length; i++) + for (int i = 0; i < remainder.Length; i++) { - ref float v = ref span[i]; + ref float v = ref remainder[i]; v = Clamp(v, min, max); } } @@ -359,13 +359,13 @@ namespace SixLabors.ImageSharp [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Clamp(Span span, double min, double max) { - int reduced = ClampReduce(span, min, max); + Span remainder = span.Slice(ClampReduce(span, min, max)); - if (reduced > 0) + if (remainder.Length > 0) { - for (int i = reduced; i < span.Length; i++) + for (int i = 0; i < remainder.Length; i++) { - ref double v = ref span[i]; + ref double v = ref remainder[i]; v = Clamp(v, min, max); } }