From dc7b7ec4cf3d8dcaa0366138b2d493279f80e8a0 Mon Sep 17 00:00:00 2001 From: Darin Adler Date: Wed, 6 Mar 2002 19:24:43 +0000 Subject: [PATCH] Fix storage leaks. * libnautilus-private/nautilus-mime-actions.c: (nautilus_mime_set_short_list_applications_for_file), (nautilus_mime_set_short_list_components_for_file): Fix storage leaks. --- ChangeLog | 7 +++++++ libnautilus-private/nautilus-mime-actions.c | 19 +++++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7d8fd890f..320efa11c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2002-03-06 Darin Adler + + * libnautilus-private/nautilus-mime-actions.c: + (nautilus_mime_set_short_list_applications_for_file), + (nautilus_mime_set_short_list_components_for_file): + Fix storage leaks. + 2002-03-06 Michael Meeks * src/file-manager/fm-icon-view.c diff --git a/libnautilus-private/nautilus-mime-actions.c b/libnautilus-private/nautilus-mime-actions.c index 2fdad616b..33f1d6873 100644 --- a/libnautilus-private/nautilus-mime-actions.c +++ b/libnautilus-private/nautilus-mime-actions.c @@ -915,11 +915,15 @@ nautilus_mime_set_short_list_applications_for_file (NautilusFile *file, normal_short_list_ids = g_list_prepend (normal_short_list_ids, ((GnomeVFSMimeApplication *) p->data)->id); } + gnome_vfs_mime_application_list_free (normal_short_list); + /* compute delta */ add_list = str_list_difference (applications, normal_short_list_ids); remove_list = str_list_difference (normal_short_list_ids, applications); + eel_g_list_free_deep (normal_short_list_ids); + nautilus_file_set_metadata_list (file, NAUTILUS_METADATA_KEY_SHORT_LIST_APPLICATION_ADD, @@ -931,9 +935,8 @@ nautilus_mime_set_short_list_applications_for_file (NautilusFile *file, NAUTILUS_METADATA_SUBKEY_APPLICATION_ID, remove_list); - /* FIXME bugzilla.gnome.org 41269: - * need to free normal_short_list, normal_short_list_ids, add_list, remove_list - */ + eel_g_list_free_deep (add_list); + eel_g_list_free_deep (remove_list); return GNOME_VFS_OK; } @@ -953,6 +956,7 @@ nautilus_mime_set_short_list_components_for_file (NautilusFile *file, GNOME_VFS_ERROR_GENERIC); /* get per-mime short list */ + mime_type = nautilus_file_get_mime_type (file); normal_short_list = gnome_vfs_mime_get_short_list_components (mime_type); g_free (mime_type); @@ -962,11 +966,15 @@ nautilus_mime_set_short_list_components_for_file (NautilusFile *file, normal_short_list_ids = g_list_prepend (normal_short_list_ids, ((Bonobo_ServerInfo *) p->data)->iid); } + gnome_vfs_mime_component_list_free (normal_short_list); + /* compute delta */ add_list = str_list_difference (components, normal_short_list_ids); remove_list = str_list_difference (normal_short_list_ids, components); + eel_g_list_free_deep (normal_short_list_ids); + nautilus_file_set_metadata_list (file, NAUTILUS_METADATA_KEY_SHORT_LIST_COMPONENT_ADD, @@ -978,9 +986,8 @@ nautilus_mime_set_short_list_components_for_file (NautilusFile *file, NAUTILUS_METADATA_SUBKEY_COMPONENT_IID, remove_list); - /* FIXME bugzilla.gnome.org 41269: - * need to free normal_short_list, normal_short_list_ids, add_list, remove_list - */ + eel_g_list_free_deep (add_list); + eel_g_list_free_deep (remove_list); return GNOME_VFS_OK; }