diff options
author | Bruno Haible <bruno@clisp.org> | 2007-03-16 00:30:06 +0000 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2007-03-16 00:30:06 +0000 |
commit | e062ed7a99ca4e88a93db19362800a3326a462ea (patch) | |
tree | 222ea11a3a469b7bc11a9408bcb51e30cbf16f42 /lib/gl_anyrbtree_list2.h | |
parent | 814d96015643834fadd0980254ad0b7ece8266be (diff) | |
download | gnulib-e062ed7a99ca4e88a93db19362800a3326a462ea.tar.gz |
Allow the use of a destructor for the values stored in the list.
Diffstat (limited to 'lib/gl_anyrbtree_list2.h')
-rw-r--r-- | lib/gl_anyrbtree_list2.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/gl_anyrbtree_list2.h b/lib/gl_anyrbtree_list2.h index 7ede9a65a7..6d1e6b0926 100644 --- a/lib/gl_anyrbtree_list2.h +++ b/lib/gl_anyrbtree_list2.h @@ -1,5 +1,5 @@ /* Sequential list data type implemented by a binary tree. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006-2007 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2006. This program is free software; you can redistribute it and/or modify @@ -68,6 +68,7 @@ static gl_list_t gl_tree_create (gl_list_implementation_t implementation, gl_listelement_equals_fn equals_fn, gl_listelement_hashcode_fn hashcode_fn, + gl_listelement_dispose_fn dispose_fn, bool allow_duplicates, size_t count, const void **contents) { @@ -76,6 +77,7 @@ gl_tree_create (gl_list_implementation_t implementation, list->base.vtable = implementation; list->base.equals_fn = equals_fn; list->base.hashcode_fn = hashcode_fn; + list->base.dispose_fn = dispose_fn; list->base.allow_duplicates = allow_duplicates; #if WITH_HASHTABLE { @@ -959,6 +961,8 @@ gl_tree_remove_node (gl_list_t list, gl_list_node_t node) } } + if (list->base.dispose_fn != NULL) + list->base.dispose_fn (node->value); free (node); return true; } |