> }
> - *list = g_list_prepend(*list, g_slice_dup(GtkTreeIter, iter));
> +
> + gtk_tree_model_get(GTK_TREE_MODEL(store), iter,
> SYMBOLS_COLUMN_TAG, &tag, -1);
something like this
```diff
diff --git a/src/symbols.c b/src/symbols.c
index fed7b2f..cee0d1b 100644
--- a/src/symbols.c
+++ b/src/symbols.c
@@ -1315,24 +1315,20 @@ static void parents_table_tree_value_free(gpointer data)
/* adds a new element in the parent table if it's key is known. */
-static void update_parents_table(GHashTable *table, gchar *name, const gchar
*parent_name,
- GtkTreeIter *iter, GtkTreeStore *store)
+static void update_parents_table(GHashTable *table, const TMTag *tag, const
gchar *parent_name,
+ const GtkTreeIter *iter)
{
GTree *tree;
- if (g_hash_table_lookup_extended(table, name, NULL, (gpointer *) &tree) &&
- ! utils_str_equal(parent_name, name) /* prevent Foo::Foo from making
parent = child */)
+ if (g_hash_table_lookup_extended(table, tag->name, NULL, (gpointer *)
&tree) &&
+ ! utils_str_equal(parent_name, tag->name) /* prevent Foo::Foo from
making parent = child */)
{
- TMTag *tag;
-
if (!tree)
{
tree = g_tree_new_full(tree_cmp, NULL, NULL,
parents_table_tree_value_free);
- g_hash_table_insert(table, name, tree);
+ g_hash_table_insert(table, tag->name, tree);
}
- gtk_tree_model_get(GTK_TREE_MODEL(store), iter, SYMBOLS_COLUMN_TAG,
&tag, -1);
g_tree_insert(tree, GINT_TO_POINTER(tag->line),
g_slice_dup(GtkTreeIter, iter));
- tm_tag_unref(tag);
}
}
@@ -1545,7 +1541,7 @@ static void update_tree_tags(GeanyDocument *doc, GList
**tags)
g_free(tooltip);
}
- update_parents_table(parents_table, found->name, parent_name,
&iter, store);
+ update_parents_table(parents_table, found, parent_name, &iter);
/* remove the updated tag from the table and list */
tags_table_remove(tags_table, found);
@@ -1604,7 +1600,7 @@ static void update_tree_tags(GeanyDocument *doc, GList
**tags)
if (G_LIKELY(icon))
g_object_unref(icon);
- update_parents_table(parents_table, tag->name, parent_name, &iter,
store);
+ update_parents_table(parents_table, tag, parent_name, &iter);
if (expand)
tree_view_expand_to_iter(GTK_TREE_VIEW(doc->priv->tag_tree),
&iter);
```
---
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/797/files#r48686289