From 76d4c1fa56ec4c02d68ad39ac847890936a4c098 Mon Sep 17 00:00:00 2001 From: Iain Holmes Date: Wed, 11 Jul 2001 19:08:53 +0000 Subject: Free the data stop all the transfers when the summary is destroyed. svn path=/trunk/; revision=11010 --- my-evolution/e-summary-mail.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'my-evolution/e-summary-mail.c') diff --git a/my-evolution/e-summary-mail.c b/my-evolution/e-summary-mail.c index bf00686f1e..1cd3a1ec16 100644 --- a/my-evolution/e-summary-mail.c +++ b/my-evolution/e-summary-mail.c @@ -440,3 +440,36 @@ e_summary_mail_uri_to_name (ESummary *summary, } } +static void +free_folder (gpointer key, + gpointer value, + gpointer data) +{ + ESummaryMailFolder *folder = value; + + g_free (folder->name); + g_free (folder->path); + g_free (folder); + g_free (value); +} + +void +e_summary_mail_free (ESummary *summary) +{ + ESummaryMail *mail; + + g_return_if_fail (summary != NULL); + g_return_if_fail (IS_E_SUMMARY (summary)); + + mail = summary->mail; + bonobo_object_release_unref (mail->folder_info, NULL); + bonobo_object_unref (BONOBO_OBJECT (mail->listener)); + + g_hash_table_foreach (mail->folders, free_folder, NULL); + g_hash_table_destroy (mail->folders); + + g_free (mail->html); + + g_free (mail); + summary->mail = NULL; +} -- cgit v1.2.3