[maemo-commits] [maemo-commits] r14317 - in projects/haf/trunk/gtk+: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Oct 4 14:52:13 EEST 2007
Author: xan
Date: 2007-10-04 14:52:10 +0300 (Thu, 04 Oct 2007)
New Revision: 14317

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkcontainer.c
Log:
Remove destroyed containers from size_allocated_containers list.

Otherwise the idle_sizer function will crash accessing unavailable data if the
container was destroyed before the handler is called.


Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2007-10-04 10:18:27 UTC (rev 14316)
+++ projects/haf/trunk/gtk+/ChangeLog	2007-10-04 11:52:10 UTC (rev 14317)
@@ -1,3 +1,10 @@
+2007-10-04  Xan Lopez  <xan.lopez at nokia.com>
+	
+	* gtk/gtkcontainer.c (gtk_container_destroy): remove the container
+	from the size_allocated_containers list when it's destroyed.
+
+	NB#71770
+
 2007-10-03  Xan Lopez  <xan.lopez at nokia.com>
 
 	* gtk/gtknotebook.c (gtk_notebook_init): do not set the homogeneous

Modified: projects/haf/trunk/gtk+/gtk/gtkcontainer.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkcontainer.c	2007-10-04 10:18:27 UTC (rev 14316)
+++ projects/haf/trunk/gtk+/gtk/gtkcontainer.c	2007-10-04 11:52:10 UTC (rev 14317)
@@ -1026,6 +1026,11 @@
   container->reallocate_redraws = FALSE;
 }
 
+#ifdef MAEMO_CHANGES
+static GSList *size_allocated_containers = NULL;
+static guint   collect_size_allocated_containers = 0;
+#endif
+
 static void
 gtk_container_destroy (GtkObject *object)
 {
@@ -1034,6 +1039,10 @@
   if (GTK_CONTAINER_RESIZE_PENDING (container))
     _gtk_container_dequeue_resize_handler (container);
 
+#ifdef MAEMO_CHANGES
+  size_allocated_containers = g_slist_remove (size_allocated_containers, container);
+#endif
+
   /* do this before walking child widgets, to avoid
    * removing children from focus chain one by one.
    */
@@ -1304,8 +1313,6 @@
 }
 
 #ifdef MAEMO_CHANGES
-static GSList *size_allocated_containers = NULL;
-static guint   collect_size_allocated_containers = 0;
 void
 _gtk_container_post_size_allocate (GtkContainer *container)
 {


More information about the maemo-commits mailing list