From 3c97f037a9fc5ef0f9438e41882eff8c703c88a6 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 30 Jun 2009 13:22:51 +0200 Subject: [PATCH] clean up code in gtk_list_store_set_n_columns() Previous code's messiness noted by Francisco Javier Taboada Aguado in http://mail.gnome.org/archives/gtk-devel-list/2009-June/msg00001.html --- gtk/gtkliststore.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/gtk/gtkliststore.c b/gtk/gtkliststore.c index 3f2f7c4fc3..470c9f82b1 100644 --- a/gtk/gtkliststore.c +++ b/gtk/gtkliststore.c @@ -338,29 +338,19 @@ gtk_list_store_set_n_columns (GtkListStore *list_store, gint n_columns) { GType *new_columns; + int i; if (list_store->n_columns == n_columns) return; - new_columns = g_new0 (GType, n_columns); - if (list_store->column_headers) - { - /* copy the old header orders over */ - if (n_columns >= list_store->n_columns) - memcpy (new_columns, list_store->column_headers, list_store->n_columns * sizeof (gchar *)); - else - memcpy (new_columns, list_store->column_headers, n_columns * sizeof (GType)); - - g_free (list_store->column_headers); - } + list_store->column_headers = g_renew (GType, list_store->column_headers, n_columns); + for (i = list_store->n_columns; i < n_columns; i++) + list_store->column_headers[i] = G_TYPE_INVALID; + list_store->n_columns = n_columns; if (list_store->sort_list) _gtk_tree_data_list_header_free (list_store->sort_list); - list_store->sort_list = _gtk_tree_data_list_header_new (n_columns, list_store->column_headers); - - list_store->column_headers = new_columns; - list_store->n_columns = n_columns; } static void