From 96c8120d286b1d7a99052ae97f1c47388c20c3dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erick=20P=C3=A9rez=20Castellanos?= Date: Mon, 16 Feb 2015 17:37:01 -0500 Subject: [PATCH] month-view: optimized event-widget parts removal --- src/gcal-month-view.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/gcal-month-view.c b/src/gcal-month-view.c index b7070079..be659254 100644 --- a/src/gcal-month-view.c +++ b/src/gcal-month-view.c @@ -785,7 +785,7 @@ gcal_month_view_size_allocate (GtkWidget *widget, GtkAllocation child_allocation; gint natural_height; - GList *widgets, *l, *aux, *l2 = NULL; + GList *widgets, *aux, *l = NULL; GHashTableIter iter; gpointer key, value; @@ -802,16 +802,10 @@ gcal_month_view_size_allocate (GtkWidget *widget, /* remove every widget' parts, but the master widget */ widgets = g_hash_table_get_values (ppriv->children); for (aux = widgets; aux != NULL; aux = g_list_next (aux)) - { - l = g_list_next ((GList*) aux->data); - for (; l != NULL; l = g_list_next (l)) - l2 = g_list_append (l2, l->data); - } + l = g_list_concat (l, g_list_copy (g_list_next (aux->data))); g_list_free (widgets); - for (aux = l2; aux != NULL; aux = g_list_next (aux)) - gtk_widget_destroy ((GtkWidget*) aux->data); - g_list_free (l2); + g_list_free_full (l, (GDestroyNotify) gtk_widget_destroy); /* clean overflow information */ g_hash_table_remove_all (ppriv->overflow_cells);