From 5056b125e99129ab1da9cf710b1be6039e608998 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sat, 29 May 2021 00:08:37 +0100 Subject: [PATCH] small change on lsl lists DeleteSublist() --- .../Region/ScriptEngine/Shared/LSL_Types.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs index fdf9da3cd1..9d2c45825c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs +++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs @@ -1029,20 +1029,32 @@ namespace OpenSim.Region.ScriptEngine.Shared end=Data.Length-1; // now, this makes the math easier - int remove=end+1-start; + int remove=end + 1- start; - ret=new Object[Data.Length-remove]; + ret = new Object[Data.Length-remove]; if (ret.Length == 0) return new list(ret); + /* int src; - int dest=0; + int dest =0; for (src = 0; src < Data.Length; src++) { if (src < start || src > end) ret[dest++]=Data[src]; } + */ + + if (start > 0) + Array.Copy(Data, 0, ret, 0, start); + + end++; + + if(end < start || end > Data.Length - 1) + return new list(ret); + + Array.Copy(Data, end, ret, start, Data.Length - end); return new list(ret); }