Explorar o código

* TreeView.cs: We don't need to keep a count anymore.
* TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
use the Grow method.


svn path=/trunk/mcs/; revision=51898

Jackson Harper %!s(int64=20) %!d(string=hai) anos
pai
achega
180617da12

+ 6 - 0
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog

@@ -1,3 +1,9 @@
+2005-10-18  Jackson Harper  <[email protected]>
+
+	* TreeView.cs: We don't need to keep a count anymore.
+	* TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
+	use the Grow method.
+
 2005-10-18  Jackson Harper  <[email protected]>
 
 	* TreeNodeCollection.cs: Insert is not supported on arrays, so

+ 8 - 9
mcs/class/Managed.Windows.Forms/System.Windows.Forms/TreeNodeCollection.cs

@@ -171,12 +171,13 @@ namespace System.Windows.Forms {
 		public virtual void Insert (int index, TreeNode node)
 		{
 			SetData (node);
-			TreeNode [] newlist = new TreeNode [nodes.Length + 1];
-			Array.Copy (nodes, 0, newlist, 0, index);
-			Array.Copy (nodes, index, newlist, index + 1, nodes.Length - index);
-			newlist [index] = node;
-			
-			nodes = newlist;
+
+			if (count >= nodes.Length)
+				Grow ();
+
+			Array.Copy (nodes, index, nodes, index + 1, count - index);
+			nodes [index] = node;
+			count++;
 		}
 
 		public virtual void Remove (TreeNode node)
@@ -188,12 +189,10 @@ namespace System.Windows.Forms {
 
 		public virtual void RemoveAt (int index)
 		{
-			Array.Copy (nodes, index, nodes, index - 1, count - index);
+			Array.Copy (nodes, index, nodes, index + 1, count - index);
 			count--;
 			if (nodes.Length > OrigSize && nodes.Length > (count * 2))
 				Shrink ();
-			if (owner.TreeView != null)
-				owner.TreeView.TotalNodeCount--;
 		}
 
 		int IList.Add (object node)

+ 0 - 5
mcs/class/Managed.Windows.Forms/System.Windows.Forms/TreeView.cs

@@ -719,11 +719,6 @@ namespace System.Windows.Forms {
 			}
 		}
 
-		internal int TotalNodeCount {
-			get { return total_node_count; }
-			set { total_node_count = value; }
-		}
-
 		internal IntPtr CreateNodeHandle ()
 		{
 			return (IntPtr) handle_count++;