From 9d3713879d636616aeec5db6fc18099acaa90aad Mon Sep 17 00:00:00 2001 From: "SND\\floAr_cp" Date: Tue, 22 Nov 2011 20:20:04 +0000 Subject: [PATCH] removed 2 errors --- ANX.Framework/CurveKeyCollection.cs | 30 ++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/ANX.Framework/CurveKeyCollection.cs b/ANX.Framework/CurveKeyCollection.cs index 0859a0c8..2f90df8d 100644 --- a/ANX.Framework/CurveKeyCollection.cs +++ b/ANX.Framework/CurveKeyCollection.cs @@ -83,7 +83,21 @@ namespace ANX.Framework } set { - keys[index] = value; + if (value == null) + throw new ArgumentNullException(); + + if (index >= keys.Count) + throw new IndexOutOfRangeException(); + //if fitting add here + if (keys[index].Position == value.Position) + keys[index] = value; + else + { + //if not let it be sorted + keys.RemoveAt(index); + keys.Add(value); + } + } } #endregion @@ -127,7 +141,7 @@ namespace ANX.Framework if (comp == 0) { //Item is equal to half point - this.keys.Insert(half, item); + this.keys.Insert(half+1, item); return; } else if (comp < 0) max = half; //Item is smaller @@ -170,7 +184,8 @@ namespace ANX.Framework #region RemoveAt public void RemoveAt(int index) { - keys.RemoveAt(index); + keys.RemoveAt(index); + } #endregion @@ -184,10 +199,11 @@ namespace ANX.Framework #region Clone public CurveKeyCollection Clone() { - return new CurveKeyCollection - { - keys = new List(keys), - }; + CurveKeyCollection result = new CurveKeyCollection(); + foreach (CurveKey key in this.keys) + result.Add(key); + return result; + } #endregion