summaryrefslogtreecommitdiff
path: root/lib/gl_anylinked_list2.h
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2020-05-02 21:14:29 +0200
committerBruno Haible <bruno@clisp.org>2020-05-02 23:22:13 +0200
commitda5396455733d383a4ac4d0cf7eb4cd191072352 (patch)
tree1ee388f461968b045e34f6f86bb6b2128688a363 /lib/gl_anylinked_list2.h
parent792c2571d96142bfb97b690579da25fd734735b3 (diff)
downloadgnulib-da5396455733d383a4ac4d0cf7eb4cd191072352.tar.gz
list: Remove redundant code for remove_first and remove_last operations.
* lib/gl_list.h (struct gl_list_implementation): Remove fields remove_first, remove_last. (gl_list_remove_first, gl_list_remove_last): Implement in a generic way. * lib/gl_array_list.c: Revert last change. * lib/gl_carray_list.c: Likewise. * lib/gl_anylinked_list2.h: Likewise. * lib/gl_linked_list.c: Likewise. * lib/gl_linkedhash_list.c: Likewise. * lib/gl_anytree_list2.h: Likewise. * lib/gl_avltree_list.c: Likewise. * lib/gl_avltreehash_list.c: Likewise. * lib/gl_rbtree_list.c: Likewise. * lib/gl_rbtreehash_list.c: Likewise. * lib/gl_sublist.c: Likewise.
Diffstat (limited to 'lib/gl_anylinked_list2.h')
-rw-r--r--lib/gl_anylinked_list2.h62
1 files changed, 0 insertions, 62 deletions
diff --git a/lib/gl_anylinked_list2.h b/lib/gl_anylinked_list2.h
index 0032dc8826..114106c7dc 100644
--- a/lib/gl_anylinked_list2.h
+++ b/lib/gl_anylinked_list2.h
@@ -882,68 +882,6 @@ gl_linked_remove_at (gl_list_t list, size_t position)
}
static bool
-gl_linked_remove_first (gl_list_t list)
-{
- size_t count = list->count;
- gl_list_node_t removed_node;
-
- if (count == 0)
- return false;
- /* Here we know count > 0. */
- /* Like gl_linked_remove_at (list, 0). */
- {
- gl_list_node_t node;
- gl_list_node_t after_removed;
-
- node = &list->root;
- removed_node = node->next;
- after_removed = node->next->next;
- ASYNCSAFE(gl_list_node_t) node->next = after_removed;
- after_removed->prev = node;
- }
-#if WITH_HASHTABLE
- remove_from_bucket (list, removed_node);
-#endif
- list->count--;
-
- if (list->base.dispose_fn != NULL)
- list->base.dispose_fn (removed_node->value);
- free (removed_node);
- return true;
-}
-
-static bool
-gl_linked_remove_last (gl_list_t list)
-{
- size_t count = list->count;
- gl_list_node_t removed_node;
-
- if (count == 0)
- return false;
- /* Here we know count > 0. */
- /* Like gl_linked_remove_at (list, count - 1). */
- {
- gl_list_node_t node;
- gl_list_node_t before_removed;
-
- node = &list->root;
- removed_node = node->prev;
- before_removed = node->prev->prev;
- node->prev = before_removed;
- ASYNCSAFE(gl_list_node_t) before_removed->next = node;
- }
-#if WITH_HASHTABLE
- remove_from_bucket (list, removed_node);
-#endif
- list->count--;
-
- if (list->base.dispose_fn != NULL)
- list->base.dispose_fn (removed_node->value);
- free (removed_node);
- return true;
-}
-
-static bool
gl_linked_remove (gl_list_t list, const void *elt)
{
gl_list_node_t node = gl_linked_search_from_to (list, 0, list->count, elt);