From f22061748dedac4e2a0d30680ce734bd4685c199 Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Sat, 24 Nov 2007 14:10:10 +0100 Subject: [PATCH] src/utils_avltree.h: Improved the documentation. The `key' argument is not copied and freed automatically. This was insufficiently documented in the documentation.. --- src/utils_avltree.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/utils_avltree.h b/src/utils_avltree.h index 0ac6087e..7a29a294 100644 --- a/src/utils_avltree.h +++ b/src/utils_avltree.h @@ -70,7 +70,10 @@ void avl_destroy (avl_tree_t *t); * PARAMETERS * `t' AVL-tree to store the data in. * `key' Key used to store the value under. This is used to get back to - * the value again. + * the value again. The pointer is stored in an internal structure + * and _not_ copied. So the memory pointed to may _not_ be freed + * before this entry is removed. You can use the `rkey' argument + * to `avl_remove' to get the original pointer back and free it. * `value' Value to be stored. * * RETURN VALUE @@ -91,6 +94,10 @@ int avl_insert (avl_tree_t *t, void *key, void *value); * `t' AVL-tree to remove key-value-pair from. * `key' Key to identify the entry. * `rkey' Pointer to a pointer in which to store the key. May be NULL. + * Since the `key' pointer is not copied when creating an entry, + * the pointer may not be available anymore from outside the tree. + * You can use this argument to get the actual pointer back and + * free the memory pointed to by it. * `rvalue' Pointer to a pointer in which to store the value. May be NULL. * * RETURN VALUE -- 2.30.2