From afaa18167620478b86d9c0725f20aa00f39e1da4 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Mon, 31 May 2021 16:36:20 +0100 Subject: [PATCH] a few more changes to lsl list --- .../Region/ScriptEngine/Shared/LSL_Types.cs | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs index f8b5165cbc..6910bb61fe 100644 --- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs +++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs @@ -1368,10 +1368,10 @@ namespace OpenSim.Region.ScriptEngine.Shared if (tmp.GetType() == pivotType && needSwapAscending(pivot, tmp)) { ret[j] = pivot; - ret[i] = tmp; pivot = tmp; } } + ret[i] = pivot; } } else @@ -1386,16 +1386,10 @@ namespace OpenSim.Region.ScriptEngine.Shared if (tmp.GetType() == pivotType && needSwapDescending(pivot, tmp)) { ret[j] = pivot; - ret[i] = tmp; pivot = tmp; - for (int k = 1; k < stride; k++) - { - tmp = ret[i + k]; - ret[i + k] = ret[j + k]; - ret[j + k] = tmp; - } } } + ret[i] = pivot; } } } @@ -1415,16 +1409,22 @@ namespace OpenSim.Region.ScriptEngine.Shared if (tmp.GetType() == pivotType && needSwapAscending(pivot, tmp)) { ret[j] = pivot; - ret[i] = tmp; pivot = tmp; - for (int k = 1; k < stride; k++) + + int ik = i; + int end = ik + stride - 1; + int jk = j; + while (ik < end) { - tmp = ret[i + k]; - ret[i + k] = ret[j + k]; - ret[j + k] = tmp; + ++ik; + ++jk; + tmp = ret[ik]; + ret[ik] = ret[jk]; + ret[jk] = tmp; } } } + ret[i] = pivot; } } else @@ -1439,16 +1439,22 @@ namespace OpenSim.Region.ScriptEngine.Shared if (tmp.GetType() == pivotType && needSwapDescending(pivot, tmp)) { ret[j] = pivot; - ret[i] = tmp; pivot = tmp; - for (int k = 1; k < stride; k++) + + int ik = i; + int end = ik + stride - 1; + int jk = j; + while (ik < end) { - tmp = ret[i + k]; - ret[i + k] = ret[j + k]; - ret[j + k] = tmp; + ++ik; + ++jk; + tmp = ret[ik]; + ret[ik] = ret[jk]; + ret[jk] = tmp; } } } + ret[i] = pivot; } }