summaryrefslogtreecommitdiff
path: root/modules/rbtree-oset-tests
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2020-07-20 20:06:29 +0200
committerBruno Haible <bruno@clisp.org>2020-07-20 20:06:29 +0200
commit91af6d7383aad01cd43b45dd733b027065743d00 (patch)
tree70ea617e9893fdd45077c88f8143c666805ac644 /modules/rbtree-oset-tests
parent2d431ac35c4943a3655c07ba91870d2323321b43 (diff)
downloadgnulib-91af6d7383aad01cd43b45dd733b027065743d00.tar.gz
oset: Add an 'update' operation.
* lib/gl_array_oset.c (gl_array_update): New function. (gl_array_oset_implementation): Use it. * lib/gl_avltree_omap.c (NODE_PAYLOAD_DISPOSE): Add parameters. * lib/gl_rbtree_omap.c (NODE_PAYLOAD_DISPOSE): Add parameters. * lib/gl_avltree_ordered.h (gl_tree_add_node_before): New function, extracted from gl_tree_nx_add_before. (gl_tree_nx_add_before): Invoke it. (gl_tree_add_node_after): New function, extracted from gl_tree_nx_add_after. (gl_tree_nx_add_after): Invoke it. (gl_tree_remove_node_no_free): New function, extracted from gl_tree_remove_node. (gl_tree_remove_node): Invoke it. * lib/gl_rbtree_ordered.h (gl_tree_add_node_before): New function, extracted from gl_tree_nx_add_before. (gl_tree_nx_add_before): Invoke it. (gl_tree_add_node_after): New function, extracted from gl_tree_nx_add_after. (gl_tree_nx_add_after): Invoke it. (gl_tree_remove_node_no_free): New function, extracted from gl_tree_remove_node. (gl_tree_remove_node): Invoke it. * lib/gl_anytree_oset.h (gl_tree_next_node): New function, extracted from gl_tree_iterator_next. (gl_tree_iterator_next): Invoke it. (gl_tree_prev_node, gl_tree_update): New functions. * lib/gl_avltree_oset.c (NODE_PAYLOAD_DISPOSE): Add parameters. (gl_avltree_oset_implementation): Use gl_tree_update. * lib/gl_rbtree_oset.c (NODE_PAYLOAD_DISPOSE): Add parameters. (gl_rbtree_oset_implementation): Use gl_tree_update. * lib/gl_oset.h (struct gl_oset_implementation): Add 'update' member. (gl_oset_update): New function. * lib/gl_oset.hh (gl_OSet): Add 'update' member. * modules/avltree-oset (configure.ac): Require AC_C_INLINE. * modules/rbtree-oset (configure.ac): Likewise. * tests/test-oset-update.h: New file. * tests/test-array_oset.c: Include test-oset-update.h. (main): Invoke test_update. * tests/test-avltree_oset.c: Likewise. * tests/test-rbtree_oset.c: Likewise. * modules/array-oset-tests (Files): Add tests/test-oset-update.h. * modules/avltree-oset-tests (Files): Likewise. * modules/rbtree-oset-tests (Files): Likewise. * tests/test-oset-c++.cc (action): New function. (main): Test the 'update' member function.
Diffstat (limited to 'modules/rbtree-oset-tests')
-rw-r--r--modules/rbtree-oset-tests1
1 files changed, 1 insertions, 0 deletions
diff --git a/modules/rbtree-oset-tests b/modules/rbtree-oset-tests
index 366faf23cc..bac509446f 100644
--- a/modules/rbtree-oset-tests
+++ b/modules/rbtree-oset-tests
@@ -1,5 +1,6 @@
Files:
tests/test-rbtree_oset.c
+tests/test-oset-update.h
tests/macros.h
Depends-on: