]> Pileus Git - ~andy/gtk/commitdiff
Keep the cell_list in a consistent state while iterating over it, since
authorMatthias Clasen <maclas@gmx.de>
Wed, 10 Mar 2004 21:28:10 +0000 (21:28 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 10 Mar 2004 21:28:10 +0000 (21:28 +0000)
Wed Mar 10 22:30:23 2004  Matthias Clasen  <maclas@gmx.de>

* gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the
cell_list in a consistent state while iterating over it, since
clear_attributes() also iterates over it.  (#136585, Morten Welinder)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkcellview.c

index 0d9a8a50ef5de27c5661cc9f130a1fd38155cb00..1f9639a0a257a2dc6b7b135d8b49343c809d34ae 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Wed Mar 10 22:30:23 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the
+       cell_list in a consistent state while iterating over it, since
+       clear_attributes() also iterates over it.  (#136585, Morten Welinder)
+
 2004-03-10  Mark McLoughlin  <mark@skynet.ie>
 
        * gtk/gtkexpander.c: (gtk_expander_expose): don't propagate
index 0d9a8a50ef5de27c5661cc9f130a1fd38155cb00..1f9639a0a257a2dc6b7b135d8b49343c809d34ae 100644 (file)
@@ -1,3 +1,9 @@
+Wed Mar 10 22:30:23 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the
+       cell_list in a consistent state while iterating over it, since
+       clear_attributes() also iterates over it.  (#136585, Morten Welinder)
+
 2004-03-10  Mark McLoughlin  <mark@skynet.ie>
 
        * gtk/gtkexpander.c: (gtk_expander_expose): don't propagate
index 0d9a8a50ef5de27c5661cc9f130a1fd38155cb00..1f9639a0a257a2dc6b7b135d8b49343c809d34ae 100644 (file)
@@ -1,3 +1,9 @@
+Wed Mar 10 22:30:23 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the
+       cell_list in a consistent state while iterating over it, since
+       clear_attributes() also iterates over it.  (#136585, Morten Welinder)
+
 2004-03-10  Mark McLoughlin  <mark@skynet.ie>
 
        * gtk/gtkexpander.c: (gtk_expander_expose): don't propagate
index 0d9a8a50ef5de27c5661cc9f130a1fd38155cb00..1f9639a0a257a2dc6b7b135d8b49343c809d34ae 100644 (file)
@@ -1,3 +1,9 @@
+Wed Mar 10 22:30:23 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the
+       cell_list in a consistent state while iterating over it, since
+       clear_attributes() also iterates over it.  (#136585, Morten Welinder)
+
 2004-03-10  Mark McLoughlin  <mark@skynet.ie>
 
        * gtk/gtkexpander.c: (gtk_expander_expose): don't propagate
index 0d9a8a50ef5de27c5661cc9f130a1fd38155cb00..1f9639a0a257a2dc6b7b135d8b49343c809d34ae 100644 (file)
@@ -1,3 +1,9 @@
+Wed Mar 10 22:30:23 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the
+       cell_list in a consistent state while iterating over it, since
+       clear_attributes() also iterates over it.  (#136585, Morten Welinder)
+
 2004-03-10  Mark McLoughlin  <mark@skynet.ie>
 
        * gtk/gtkexpander.c: (gtk_expander_expose): don't propagate
index 0d1d9e1f479ffe42eb534c464482a546d38ea765..5f8465a8039fd264a876c48f51fece56b0ce6ade 100644 (file)
@@ -636,17 +636,16 @@ gtk_cell_view_cell_layout_clear (GtkCellLayout *layout)
 
   g_return_if_fail (GTK_IS_CELL_VIEW (cellview));
 
-  for (i = cellview->priv->cell_list; i; i = i->next)
+  while (cellview->priv->cell_list)
     {
-      GtkCellViewCellInfo *info = (GtkCellViewCellInfo *)i->data;
+      GtkCellViewCellInfo *info = (GtkCellViewCellInfo *)cellview->priv->cell_list->data;
 
       gtk_cell_view_cell_layout_clear_attributes (layout, info->cell);
       g_object_unref (G_OBJECT (info->cell));
       g_free (info);
+      cellview->priv->cell_list = g_list_delete_link (cellview->priv->cell_list, 
+                                                     cellview->priv->cell_list);
     }
-
-  g_list_free (cellview->priv->cell_list);
-  cellview->priv->cell_list = NULL;
 }
 
 static void