From 1cbaca33653a95e5a48a1484999ff2253257c035 Mon Sep 17 00:00:00 2001 From: Alexander Schwinn <alexxcons@xfce.org> Date: Sun, 16 May 2021 19:20:04 +0200 Subject: [PATCH] Fixing various memory leaks (Issue #573) Co-authored-by: Theo Linkspfeifer <lastonestanding@tutanota.com> --- thunar/thunar-launcher.c | 6 +----- thunar/thunar-menu.c | 1 - thunar/thunar-shortcuts-view.c | 3 +++ thunar/thunar-tree-view.c | 3 +++ 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/thunar/thunar-launcher.c b/thunar/thunar-launcher.c index b42110b6e..9c6a8c117 100644 --- a/thunar/thunar-launcher.c +++ b/thunar/thunar-launcher.c @@ -632,20 +632,16 @@ thunar_launcher_set_selected_files (ThunarComponent *component, launcher->files_are_all_executable = TRUE; launcher->single_directory_to_process = FALSE; launcher->single_folder = NULL; - launcher->parent_folder = NULL; /* if nothing is selected, the current directory is the folder to use for all menus */ if (launcher->files_are_selected) launcher->files_to_process = thunar_g_list_copy_deep (selected_files); else - launcher->files_to_process = g_list_append (launcher->files_to_process, launcher->current_directory); + launcher->files_to_process = g_list_append (launcher->files_to_process, g_object_ref (launcher->current_directory)); /* determine the number of files/directories/executables */ for (lp = launcher->files_to_process; lp != NULL; lp = lp->next, ++launcher->n_files_to_process) { - /* Keep a reference on all selected files */ - g_object_ref (lp->data); - if (thunar_file_is_directory (lp->data) || thunar_file_is_shortcut (lp->data) || thunar_file_is_mountable (lp->data)) diff --git a/thunar/thunar-menu.c b/thunar/thunar-menu.c index 96cac77f8..29394bc9c 100644 --- a/thunar/thunar-menu.c +++ b/thunar/thunar-menu.c @@ -210,7 +210,6 @@ thunar_menu_set_property (GObject *object, case PROP_LAUNCHER: menu->launcher = g_value_dup_object (value); - g_object_ref (G_OBJECT (menu->launcher)); break; case PROP_FORCE_SECTION_OPEN: diff --git a/thunar/thunar-shortcuts-view.c b/thunar/thunar-shortcuts-view.c index c2dd1c3be..ff9934bb8 100644 --- a/thunar/thunar-shortcuts-view.c +++ b/thunar/thunar-shortcuts-view.c @@ -428,6 +428,9 @@ thunar_shortcuts_view_finalize (GObject *object) /* reset the current-directory property */ thunar_navigator_set_current_directory (THUNAR_NAVIGATOR (view), NULL); + /* release reference on the launcher */ + g_object_unref (view->launcher); + /* disconnect from the preferences object */ g_signal_handlers_disconnect_matched (G_OBJECT (view->preferences), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, view); g_object_unref (G_OBJECT (view->preferences)); diff --git a/thunar/thunar-tree-view.c b/thunar/thunar-tree-view.c index 898b7ea77..501abd206 100644 --- a/thunar/thunar-tree-view.c +++ b/thunar/thunar-tree-view.c @@ -445,6 +445,9 @@ thunar_tree_view_finalize (GObject *object) /* reset the current-directory property */ thunar_navigator_set_current_directory (THUNAR_NAVIGATOR (view), NULL); + /* release reference on the launcher */ + g_object_unref (view->launcher); + /* release our reference on the preferences */ g_object_unref (G_OBJECT (view->preferences)); -- GitLab