aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-selection-model.c
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table/e-table-selection-model.c')
-rw-r--r--widgets/table/e-table-selection-model.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/widgets/table/e-table-selection-model.c b/widgets/table/e-table-selection-model.c
index 76983106f6..2b8ec0fa99 100644
--- a/widgets/table/e-table-selection-model.c
+++ b/widgets/table/e-table-selection-model.c
@@ -52,16 +52,9 @@ save_to_hash(int model_row, gpointer closure)
}
static void
-free_key(gpointer key, gpointer value, gpointer closure)
-{
- g_free(key);
-}
-
-static void
free_hash(ETableSelectionModel *etsm)
{
if (etsm->hash) {
- g_hash_table_foreach(etsm->hash, free_key, NULL);
g_hash_table_destroy(etsm->hash);
etsm->hash = NULL;
}
@@ -78,7 +71,10 @@ model_pre_change (ETableModel *etm, ETableSelectionModel *etsm)
if (etsm->model && e_table_model_has_save_id (etsm->model)) {
gint cursor_row;
- etsm->hash = g_hash_table_new(g_str_hash, g_str_equal);
+ etsm->hash = g_hash_table_new_full(
+ g_str_hash, g_str_equal,
+ (GDestroyNotify) g_free,
+ (GDestroyNotify) NULL);
e_selection_model_foreach(E_SELECTION_MODEL(etsm), save_to_hash, etsm);
g_object_get(etsm,