aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-folder-summary.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-folder-summary.c')
-rw-r--r--camel/camel-folder-summary.c14
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);
}