summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 945fa72)
raw | patch | inline | side by side (parent: 945fa72)
author | Florian Forster <octo@leeloo.lan.home.verplant.org> | |
Sat, 24 Nov 2007 13:10:10 +0000 (14:10 +0100) | ||
committer | Florian Forster <octo@leeloo.lan.home.verplant.org> | |
Sat, 24 Nov 2007 13:10:10 +0000 (14:10 +0100) |
The `key' argument is not copied and freed automatically. This was
insufficiently documented in the documentation..
insufficiently documented in the documentation..
src/utils_avltree.h | patch | blob | history |
diff --git a/src/utils_avltree.h b/src/utils_avltree.h
index 0ac6087e96ce1d721185b53cf7a66f31e52b4c60..7a29a2942e569d1aa66f3dc31177c751c073214d 100644 (file)
--- a/src/utils_avltree.h
+++ b/src/utils_avltree.h
* 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
* `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