diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-06-15 20:19:27 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-06-15 20:19:27 +0800 |
commit | f642e03d4967c80aaad45475475752264c95de5c (patch) | |
tree | 23b2f4e862f73b86e13f92c433b8315d783b1d2e /mail/e-mail-reader-utils.c | |
parent | 2f43685f591581bc7ad051ac6464799f8e5df5bf (diff) | |
download | gsoc2013-evolution-f642e03d4967c80aaad45475475752264c95de5c.tar gsoc2013-evolution-f642e03d4967c80aaad45475475752264c95de5c.tar.gz gsoc2013-evolution-f642e03d4967c80aaad45475475752264c95de5c.tar.bz2 gsoc2013-evolution-f642e03d4967c80aaad45475475752264c95de5c.tar.lz gsoc2013-evolution-f642e03d4967c80aaad45475475752264c95de5c.tar.xz gsoc2013-evolution-f642e03d4967c80aaad45475475752264c95de5c.tar.zst gsoc2013-evolution-f642e03d4967c80aaad45475475752264c95de5c.zip |
message_list_get_selected: Give the returned array a free func.
The returned UID array now has a built-in "free" function for its
elements and should be released by callers with g_ptr_array_unref()
rather than em_utils_uids_free() or some equivalent.
Diffstat (limited to 'mail/e-mail-reader-utils.c')
-rw-r--r-- | mail/e-mail-reader-utils.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c index 2cd9f96351..b50a06b42e 100644 --- a/mail/e-mail-reader-utils.c +++ b/mail/e-mail-reader-utils.c @@ -764,7 +764,7 @@ e_mail_reader_mark_selected (EMailReader *reader, camel_folder_set_message_flags ( folder, uids->pdata[ii], mask, set); - em_utils_uids_free (uids); + g_ptr_array_unref (uids); camel_folder_thaw (folder); @@ -829,12 +829,11 @@ e_mail_reader_open_selected (EMailReader *reader) em_utils_folder_is_outbox (registry, folder) || em_utils_folder_is_templates (registry, folder)) { - /* FIXME This is leaking the UID array. Give - * the array a "free func" and unref it. */ e_mail_reader_edit_messages (reader, folder, uids, TRUE, TRUE); - g_clear_object (&folder); - return uids->len; + ii = uids->len; + + goto exit; } views = g_ptr_array_new (); @@ -906,7 +905,7 @@ e_mail_reader_open_selected (EMailReader *reader) exit: g_clear_object (&folder); - em_utils_uids_free (uids); + g_ptr_array_unref (uids); return ii; } @@ -1121,10 +1120,6 @@ e_mail_reader_remove_attachments (EMailReader *reader) uids = e_mail_reader_get_selected_uids (reader); g_return_if_fail (uids != NULL); - /* XXX Either e_mail_reader_get_selected_uids() - * or MessageList should do this itself. */ - g_ptr_array_set_free_func (uids, (GDestroyNotify) g_free); - /* Remove attachments asynchronously. */ activity = e_mail_reader_new_activity (reader); @@ -1264,10 +1259,6 @@ e_mail_reader_remove_duplicates (EMailReader *reader) uids = e_mail_reader_get_selected_uids (reader); g_return_if_fail (uids != NULL); - /* XXX Either e_mail_reader_get_selected_uids() - * or MessageList should do this itself. */ - g_ptr_array_set_free_func (uids, (GDestroyNotify) g_free); - /* Find duplicate messages asynchronously. */ activity = e_mail_reader_new_activity (reader); @@ -2042,10 +2033,6 @@ e_mail_reader_save_messages (EMailReader *reader) message_uid = g_ptr_array_index (uids, 0); - /* XXX Either e_mail_reader_get_selected_uids() - * or MessageList should do this itself. */ - g_ptr_array_set_free_func (uids, (GDestroyNotify) g_free); - title = ngettext ("Save Message", "Save Messages", uids->len); /* Suggest as a filename the subject of the first message. */ @@ -2246,7 +2233,7 @@ e_mail_reader_create_filter_from_selected (EMailReader *reader, g_object_unref (activity); - em_utils_uids_free (uids); + g_ptr_array_unref (uids); g_object_unref (folder); } @@ -2363,7 +2350,7 @@ e_mail_reader_create_vfolder_from_selected (EMailReader *reader, g_object_unref (activity); - em_utils_uids_free (uids); + g_ptr_array_unref (uids); } static void |