* 092_recentfiles-recursion-fix.patch: Guard against recursion in

gtk_recent_files_menu_populate(). Patch from upstream SVN by
  William Pitcock (Closes: #459393).
This commit is contained in:
Sebastian Dröge
2008-01-17 10:01:15 +00:00
parent bb972cf161
commit 737c411f8c
3 changed files with 59 additions and 0 deletions

3
debian/changelog vendored
View File

@ -19,6 +19,9 @@ gtk+2.0 (2.12.5-1) unstable; urgency=low
* Fixes FTBFS caused by not installing the png pixbuf loader correctly
(Closes: #461037).
* Update Standards-Version to 3.7.3, no additional changes needed.
* 092_recentfiles-recursion-fix.patch: Guard against recursion in
gtk_recent_files_menu_populate(). Patch from upstream SVN by
William Pitcock (Closes: #459393).
-- Sebastian Dröge <slomo@debian.org> Thu, 17 Jan 2008 10:49:09 +0100

View File

@ -0,0 +1,55 @@
diff -urN gtk+2.0-2.12.3/gtk/gtkrecentchoosermenu.c gtk+2.0-2.12.3+fix/gtk/gtkrecentchoosermenu.c
--- gtk+2.0-2.12.3/gtk/gtkrecentchoosermenu.c 2007-12-04 10:52:08.000000000 -0600
+++ gtk+2.0-2.12.3+fix/gtk/gtkrecentchoosermenu.c 2008-01-04 23:22:01.000000000 -0600
@@ -926,8 +926,6 @@
pdata = (MenuPopulateData *) data;
priv = pdata->menu->priv;
- priv->populate_id = 0;
-
if (!pdata->items)
{
pdata->items = gtk_recent_chooser_get_items (GTK_RECENT_CHOOSER (pdata->menu));
@@ -936,6 +934,7 @@
/* show the placeholder here */
gtk_widget_show (pdata->placeholder);
pdata->displayed_items = 1;
+ priv->populate_id = 0;
return FALSE;
}
@@ -978,6 +977,8 @@
g_list_foreach (pdata->items, (GFunc) gtk_recent_info_unref, NULL);
g_list_free (pdata->items);
+ priv->populate_id = 0;
+
retval = FALSE;
}
else
@@ -991,14 +992,17 @@
{
MenuPopulateData *pdata = data;
- /* show the placeholder in case no item survived
- * the filtering process in the idle loop
- */
- if (!pdata->displayed_items)
- gtk_widget_show (pdata->placeholder);
- g_object_unref (pdata->placeholder);
+ if (pdata->menu->priv->populate_id == 0)
+ {
+ /* show the placeholder in case no item survived
+ * the filtering process in the idle loop
+ */
+ if (!pdata->displayed_items)
+ gtk_widget_show (pdata->placeholder);
+ g_object_unref (pdata->placeholder);
- g_slice_free (MenuPopulateData, data);
+ g_slice_free (MenuPopulateData, data);
+ }
}
static void

View File

@ -21,3 +21,4 @@
070_mandatory-relibtoolize.patch
091_workaround_no_gtk_init_incorrect_display.patch
093_directfb-type-changes.patch
092_recentfiles-recursion-fix.patch