--- a/gplugin/gplugin-file-tree.c Sat Feb 02 07:37:10 2019 +0000
+++ b/gplugin/gplugin-file-tree.c Mon May 20 18:22:20 2019 +0200
@@ -60,23 +60,15 @@
*****************************************************************************/
-gplugin_file_tree_free_leaves(GNode *n, gpointer d) {
+gplugin_file_tree_free_helper(GNode *n, G_GNUC_UNUSED gpointer d) { GPluginFileTreeEntry *e = n->data;
gplugin_file_tree_entry_free(e);
-gplugin_file_tree_free_non_leaves(GNode *n, G_GNUC_UNUSED gpointer d) {
/******************************************************************************
*****************************************************************************/
@@ -99,6 +91,7 @@
+ GPluginFileTreeEntry *entry = NULL; const gchar *path = (const gchar *)iter->data;
const gchar *filename = NULL;
@@ -115,13 +108,13 @@
/* we have a usable directory, so prepend it into the tree */
- node_dir = g_node_new(g_strdup(path));
+ entry = gplugin_file_tree_entry_new(path); + node_dir = g_node_new(entry); g_node_prepend(root, node_dir);
/* now run through all of the files and add then to the dir node */
while((filename = g_dir_read_name(dir)) != NULL) {
- GPluginFileTreeEntry *entry = NULL;
entry = gplugin_file_tree_entry_new(filename);
file = g_node_new(entry);
@@ -146,10 +139,9 @@
gplugin_file_tree_free(GNode *root) {
- g_node_traverse(root, G_POST_ORDER, G_TRAVERSE_LEAVES, -1,
- gplugin_file_tree_free_leaves, root);
- g_node_traverse(root, G_POST_ORDER, G_TRAVERSE_NON_LEAVES, -1,
- gplugin_file_tree_free_non_leaves, NULL);
+ g_node_traverse(root, G_POST_ORDER, + G_TRAVERSE_LEAVES | G_TRAVERSE_NON_LEAVES, + -1, gplugin_file_tree_free_helper, NULL); --- a/gplugin/gplugin-manager.c Sat Feb 02 07:37:10 2019 +0000
+++ b/gplugin/gplugin-manager.c Mon May 20 18:22:20 2019 +0200
@@ -360,13 +360,13 @@
manager->refresh_needed = FALSE;
for(dir = root->children; dir; dir = dir->next) {
+ GPluginFileTreeEntry *e = dir->data; - const gchar *path = (const gchar *)dir->data;
+ const gchar *path = e->filename; for(file = dir->children; file; file = file->next) {
GPluginPlugin *plugin = NULL;
GPluginLoader *loader = NULL;
- GPluginFileTreeEntry *e = NULL;