Update gtk to 2.14.2
[fedora-mingw.git] / gtk2 / gail-leaks.patch
diff --git a/gtk2/gail-leaks.patch b/gtk2/gail-leaks.patch
new file mode 100644 (file)
index 0000000..a368f76
--- /dev/null
@@ -0,0 +1,46 @@
+diff -up gtk+-2.14.2/modules/other/gail/gailcell.c.gail-leaks gtk+-2.14.2/modules/other/gail/gailcell.c
+--- gtk+-2.14.2/modules/other/gail/gailcell.c.gail-leaks       2008-09-19 00:55:50.000000000 -0400
++++ gtk+-2.14.2/modules/other/gail/gailcell.c  2008-09-19 00:56:24.000000000 -0400
+@@ -118,6 +118,7 @@ gail_cell_destroyed (GtkWidget       *wi
+    * GtkWidget. We set the  pointer location to NULL;
+    */
+   cell->widget = NULL;
++  g_signal_handlers_disconnect_by_func (widget, gail_cell_destroyed, cell);
+ }
+ static void
+diff -up gtk+-2.14.2/modules/other/gail/gailtreeview.c.gail-leaks gtk+-2.14.2/modules/other/gail/gailtreeview.c
+--- gtk+-2.14.2/modules/other/gail/gailtreeview.c.gail-leaks   2008-09-19 00:55:02.000000000 -0400
++++ gtk+-2.14.2/modules/other/gail/gailtreeview.c      2008-09-19 00:55:39.000000000 -0400
+@@ -3667,12 +3667,12 @@ static gboolean
+ garbage_collect_cell_data (gpointer data)
+ {
+       GailTreeView *tree_view;
+-      GList *temp_list;
++      GList *temp_list, *list;
+       GailTreeViewCellInfo *cell_info;
+       g_assert (GAIL_IS_TREE_VIEW (data));
+       tree_view = (GailTreeView *)data;
+-      temp_list = g_list_copy (tree_view->cell_data);
++      list = g_list_copy (tree_view->cell_data);
+       tree_view->garbage_collection_pending = FALSE;
+       if (tree_view->idle_garbage_collect_id != 0) 
+@@ -3682,6 +3682,7 @@ garbage_collect_cell_data (gpointer data
+       }
+       /* Must loop through them all */
++      temp_list = list;
+       while (temp_list != NULL)
+       {
+           cell_info = temp_list->data;
+@@ -3696,7 +3697,7 @@ garbage_collect_cell_data (gpointer data
+         }
+           temp_list = temp_list->next;
+       }
+-      g_list_free (temp_list);
++      g_list_free (list);
+       return tree_view->garbage_collection_pending;
+ }