/* Ordered set 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
static gl_oset_t
gl_tree_create_empty (gl_oset_implementation_t implementation,
- gl_setelement_compar_fn compar_fn)
+ gl_setelement_compar_fn compar_fn,
+ gl_setelement_dispose_fn dispose_fn)
{
struct gl_oset_impl *set = XMALLOC (struct gl_oset_impl);
set->base.vtable = implementation;
set->base.compar_fn = compar_fn;
+ set->base.dispose_fn = dispose_fn;
set->root = NULL;
set->count = 0;
node = node->left;
}
}
- *eltp = found;
+ *eltp = found->value;
return true;
}
}
if (!stack_ptr->rightp)
break;
/* Free the current node. */
+ if (set->base.dispose_fn != NULL)
+ set->base.dispose_fn (node->value);
free (node);
}
/* Descend on right branch. */