Keep the cell_list in a consistent state while iterating over it, since

Sat Mar 13 00:07:51 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_layout_clear):
	Keep the cell_list in a consistent state while iterating over it,
	since clear_attributes() also iterates over it.  (another instance
	of #136585, Morten Welinder)
This commit is contained in:
Matthias Clasen 2004-03-12 23:23:28 +00:00 committed by Matthias Clasen
parent 8ac29f3818
commit 60780dc68d
6 changed files with 41 additions and 7 deletions

View File

@ -1,3 +1,10 @@
Sat Mar 13 00:07:51 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_layout_clear):
Keep the cell_list in a consistent state while iterating over it,
since clear_attributes() also iterates over it. (another instance
of #136585, Morten Welinder)
Fri Mar 12 17:20:15 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkarrow.c (gtk_arrow_expose): Swap GTK_ARROW_LEFT

View File

@ -1,3 +1,10 @@
Sat Mar 13 00:07:51 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_layout_clear):
Keep the cell_list in a consistent state while iterating over it,
since clear_attributes() also iterates over it. (another instance
of #136585, Morten Welinder)
Fri Mar 12 17:20:15 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkarrow.c (gtk_arrow_expose): Swap GTK_ARROW_LEFT

View File

@ -1,3 +1,10 @@
Sat Mar 13 00:07:51 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_layout_clear):
Keep the cell_list in a consistent state while iterating over it,
since clear_attributes() also iterates over it. (another instance
of #136585, Morten Welinder)
Fri Mar 12 17:20:15 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkarrow.c (gtk_arrow_expose): Swap GTK_ARROW_LEFT

View File

@ -1,3 +1,10 @@
Sat Mar 13 00:07:51 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_layout_clear):
Keep the cell_list in a consistent state while iterating over it,
since clear_attributes() also iterates over it. (another instance
of #136585, Morten Welinder)
Fri Mar 12 17:20:15 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkarrow.c (gtk_arrow_expose): Swap GTK_ARROW_LEFT

View File

@ -1,3 +1,10 @@
Sat Mar 13 00:07:51 2004 Matthias Clasen <maclas@gmx.de>
* gtk/gtktreeviewcolumn.c (gtk_tree_view_column_cell_layout_clear):
Keep the cell_list in a consistent state while iterating over it,
since clear_attributes() also iterates over it. (another instance
of #136585, Morten Welinder)
Fri Mar 12 17:20:15 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtkarrow.c (gtk_arrow_expose): Swap GTK_ARROW_LEFT

View File

@ -663,17 +663,16 @@ gtk_tree_view_column_cell_layout_clear (GtkCellLayout *cell_layout)
g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (cell_layout));
column = GTK_TREE_VIEW_COLUMN (cell_layout);
for (list = column->cell_list; list; list = list->next)
while (column->cell_list)
{
GtkTreeViewColumnCellInfo *info = (GtkTreeViewColumnCellInfo *)list->data;
GtkTreeViewColumnCellInfo *info = (GtkTreeViewColumnCellInfo *)column->cell_list->data;
gtk_tree_view_column_clear_attributes (column, info->cell);
g_object_unref (info->cell);
gtk_tree_view_column_cell_layout_clear_attributes (cell_layout, info->cell);
g_object_unref (G_OBJECT (info->cell));
g_free (info);
column->cell_list = g_list_delete_link (column->cell_list,
column->cell_list);
}
g_list_free (column->cell_list);
column->cell_list = NULL;
}
static void