summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
authorGedare Bloom <gedare@rtems.org>2012-05-03 12:43:29 -0400
committerGedare Bloom <gedare@rtems.org>2012-05-08 18:40:44 -0400
commitf53aa8d3026eb97e3c67e44a1c931442dbc95010 (patch)
tree070391bda95c04c9a8b5d4e9489f4c0788c0e05f /testsuites
parentPR2061: RBTree: updating min and max on insert with duplicates (diff)
downloadrtems-f53aa8d3026eb97e3c67e44a1c931442dbc95010.tar.bz2
rbtree: API changes. Remove rbtree control node from RBTree_Next.
The implementation of RBTree_Next was using an awkward construction to detect and avoid accessing the false root of the red-black tree. To deal with the false root, RBTree_Next was comparing node parents with the control node. Instead the false root can be detected by checking if the grandparent of a node exists; the grandparent of the tree's true root is NULL by definition so the root of the tree is found while walking up the tree by checking for the non-existence of a grandparent. This change propagates into the predecessor/successor and iterate functions.
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/sptests/sprbtree01/init.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/testsuites/sptests/sprbtree01/init.c b/testsuites/sptests/sprbtree01/init.c
index 7d0d3f60c7..76035f0bf4 100644
--- a/testsuites/sptests/sprbtree01/init.c
+++ b/testsuites/sptests/sprbtree01/init.c
@@ -439,13 +439,13 @@ rtems_task Init(
}
puts( "INIT - Verify rtems_rbtree_predecessor/successor");
- p = rtems_rbtree_predecessor(&rbtree1, p);
+ p = rtems_rbtree_predecessor(p);
if(p && rtems_rbtree_container_of(p,test_node,Node)->id != 29) {
puts ("INIT - ERROR ON RBTREE ID MISMATCH");
rtems_test_exit(0);
}
p = rtems_rbtree_find(&rbtree1, &search_node.Node);
- p = rtems_rbtree_successor(&rbtree1, p);
+ p = rtems_rbtree_successor(p);
if(p && rtems_rbtree_container_of(p,test_node,Node)->id != 31) {
puts ("INIT - ERROR ON RBTREE ID MISMATCH");
rtems_test_exit(0);