diff options
Diffstat (limited to 'camel/camel-folder-summary.c')
-rw-r--r-- | camel/camel-folder-summary.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/camel/camel-folder-summary.c b/camel/camel-folder-summary.c index bdca6e677c..516f9335bd 100644 --- a/camel/camel-folder-summary.c +++ b/camel/camel-folder-summary.c @@ -167,6 +167,12 @@ camel_folder_summary_init (CamelFolderSummary *s) s->messages_uid = g_hash_table_new(g_str_hash, g_str_equal); } +static void free_o_name(void *key, void *value, void *data) +{ + gtk_object_unref((GtkObject *)value); + g_free(key); +} + static void camel_folder_summary_finalise (GtkObject *obj) { @@ -175,14 +181,12 @@ camel_folder_summary_finalise (GtkObject *obj) p = _PRIVATE(obj); - /* FIXME: free contents */ + camel_folder_summary_clear(s); g_ptr_array_free(s->messages, TRUE); - g_hash_table_destroy(s->messages_uid); - /* FIXME: free contents */ + g_hash_table_foreach(p->filter_charset, free_o_name, 0); g_hash_table_destroy(p->filter_charset); - g_free(p); if (p->filter_index) gtk_object_unref ((GtkObject *)p->filter_index); @@ -193,6 +197,8 @@ camel_folder_summary_finalise (GtkObject *obj) if (p->filter_save) gtk_object_unref ((GtkObject *)p->filter_save); + g_free(p); + ((GtkObjectClass *)(camel_folder_summary_parent))->finalize((GtkObject *)obj); } |