/** * g_tree_lookup: * @tree: a #GTree. * @key: the key to look up. * * Gets the value corresponding to the given key. Since a #GTree is * automatically balanced as key/value pairs are added, key lookup is very * fast. * * Return value: the value corresponding to the key, or %NULL if the key was * not found. **/ EXPORT_C gpointer g_tree_lookup (GTree *tree, gconstpointer key) { GTreeNode *node; g_return_val_if_fail (tree != NULL, NULL); node = g_tree_find_node (tree, key); return node ? node->value : NULL; }
/** * g_tree_lookup_extended: * @tree: a #GTree * @lookup_key: the key to look up * @orig_key: (optional) (nullable): returns the original key * @value: (optional) (nullable): returns the value associated with the key * * Looks up a key in the #GTree, returning the original key and the * associated value. This is useful if you need to free the memory * allocated for the original key, for example before calling * g_tree_remove(). * * Returns: %TRUE if the key was found in the #GTree */ gboolean g_tree_lookup_extended (GTree *tree, gconstpointer lookup_key, gpointer *orig_key, gpointer *value) { GTreeNode *node; g_return_val_if_fail (tree != NULL, FALSE); node = g_tree_find_node (tree, lookup_key); if (node) { if (orig_key) *orig_key = node->key; if (value) *value = node->value; return TRUE; } else return FALSE; }