[Mono-dev] Fix for failing TreeNodeTest.FullPathTest
Jackson Harper
jackson at ximian.com
Mon Dec 12 17:12:22 EST 2005
On Mon, 2005-12-12 at 21:54 +0100, Dieter Bremes wrote:
> Hi,
>
> below is a fix to TreeNodeCollection.cs to prevent
> TreeNodeTest.FullPathTest from failing and some other problems.
>
> OTOH I wonder how such obvious bugs could make it into the trunk
> especially as there a test that clearly catches at least one of them.
I believe it has something to do with the current make run-test locking
up X on most peoples machines.
Please file a bug report for this, attaching your patches.
Jackson
> Dieter
>
>
>
> * TreeNodeCollection.cs : Fixed bugs that among
> <http://dict.leo.org/se?lp=ende&p=/Mn4k.&search=among> other
> <http://dict.leo.org/se?lp=ende&p=/Mn4k.&search=other> things
> <http://dict.leo.org/se?lp=ende&p=/Mn4k.&search=things> caused
> TreeNodeTest.FullPathTest to fail.
>
> Index: TreeNodeCollection.cs
> ===================================================================
> --- TreeNodeCollection.cs (Revision 54253)
> +++ TreeNodeCollection.cs (Arbeitskopie)
> @@ -115,18 +115,20 @@
> // Remove it from any old parents
> node.Remove ();
>
> - TreeView tree_view = owner.TreeView;
> - if (owner != null && tree_view != null &&
> tree_view.Sorted)
> + TreeView tree_view = null;
> + if (owner != null)
> + tree_view = owner.TreeView;
> + if (tree_view != null && tree_view.Sorted)
> return AddSorted (node);
> node.parent = owner;
> if (count >= nodes.Length)
> Grow ();
> nodes [count++] = node;
>
> - if (tree_view != null && (owner.IsExpanded ||
> owner.IsRoot)) {
> + if (owner != null && tree_view != null &&
> (owner.IsExpanded || owner.IsRoot)) {
> // XXX: Need to ensure the boxes for the
> nodes have been created
> tree_view.UpdateNode (owner);
> - } else if (tree_view != null) {
> + } else if (owner != null && tree_view != null) {
> tree_view.UpdateNodePlusMinus (owner);
> }
>
> @@ -152,9 +154,12 @@
> Array.Clear (nodes, 0, count);
> count = 0;
>
> - TreeView tree_view = owner.TreeView;
> - if (tree_view != null)
> - tree_view.UpdateBelow (owner);
> + TreeView tree_view = null;
> + if (owner != null) {
> + tree_view = owner.TreeView;
> + if (tree_view != null)
> + tree_view.UpdateBelow (owner);
> + }
> }
>
> public bool Contains (TreeNode node)
> @@ -210,8 +215,10 @@
> if (nodes.Length > OrigSize && nodes.Length >
> (count * 2))
> Shrink ();
>
> - TreeView tree_view = owner.TreeView;
> - if (removed == tree_view.top_node) {
> + TreeView tree_view = null;
> + if (owner != null)
> + tree_view = owner.TreeView;
> + if (tree_view != null && removed ==
> tree_view.top_node) {
> OpenTreeNodeEnumerator oe = new
> OpenTreeNodeEnumerator (removed);
> if (oe.MoveNext () && oe.MoveNext ())
> tree_view.top_node = oe.CurrentNode;
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
More information about the Mono-devel-list
mailing list