diff --git a/gtk/gtkfilesystemmodel.c b/gtk/gtkfilesystemmodel.c index 0e8345fa38..97027d2c29 100644 --- a/gtk/gtkfilesystemmodel.c +++ b/gtk/gtkfilesystemmodel.c @@ -978,11 +978,17 @@ gtk_file_system_model_finalize (GObject *object) for (i = 0; i < model->files->len; i++) { + int v; + FileModelNode *node = get_node (model, i); if (node->file) g_object_unref (node->file); if (node->info) g_object_unref (node->info); + + for (v = 0; v < model->column_types; v++) + if (G_VALUE_TYPE (node->values[v]) != G_TYPE_INVALID) + g_value_unset (&node->values[v]); } g_array_free (model->files, TRUE); @@ -996,6 +1002,8 @@ gtk_file_system_model_finalize (GObject *object) if (model->filter) g_object_unref (model->filter); + g_slice_free1 (sizeof (GType) * n_columns, model->column_types); + _gtk_tree_data_list_header_free (model->sort_list); if (model->default_sort_destroy) model->default_sort_destroy (model->default_sort_data);