[gtk+/gtk-3-0] Free MenuPopulateData struct in all the cases.
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-0] Free MenuPopulateData struct in all the cases.
- Date: Fri, 15 Apr 2011 09:15:09 +0000 (UTC)
commit 8eabbe22201318c92f782027804b523fa4e5199f
Author: Paolo Borelli <pborelli gnome org>
Date: Wed Apr 6 04:43:09 2011 +0200
Free MenuPopulateData struct in all the cases.
For clarity factor out create/free functions.
https://bugzilla.gnome.org/show_bug.cgi?id=646876
gtk/gtkrecentchoosermenu.c | 41 +++++++++++++++++++++++++++++------------
1 files changed, 29 insertions(+), 12 deletions(-)
---
diff --git a/gtk/gtkrecentchoosermenu.c b/gtk/gtkrecentchoosermenu.c
index 4d61ad1..add5ac0 100644
--- a/gtk/gtkrecentchoosermenu.c
+++ b/gtk/gtkrecentchoosermenu.c
@@ -969,6 +969,30 @@ typedef struct
GtkWidget *placeholder;
} MenuPopulateData;
+static MenuPopulateData *
+create_menu_populate_data (GtkRecentChooserMenu *menu)
+{
+ MenuPopulateData *pdata;
+
+ pdata = g_slice_new (MenuPopulateData);
+ pdata->items = NULL;
+ pdata->n_items = 0;
+ pdata->loaded_items = 0;
+ pdata->displayed_items = 0;
+ pdata->menu = menu;
+ pdata->placeholder = g_object_ref (menu->priv->placeholder);
+
+ return pdata;
+}
+
+static void
+free_menu_populate_data (MenuPopulateData *pdata)
+{
+ if (pdata->placeholder)
+ g_object_unref (pdata->placeholder);
+ g_slice_free (MenuPopulateData, pdata);
+}
+
static gboolean
idle_populate_func (gpointer data)
{
@@ -1056,10 +1080,9 @@ idle_populate_clean_up (gpointer data)
*/
if (!pdata->displayed_items)
gtk_widget_show (pdata->placeholder);
- g_object_unref (pdata->placeholder);
-
- g_slice_free (MenuPopulateData, data);
}
+
+ free_menu_populate_data (pdata);
}
static void
@@ -1068,20 +1091,14 @@ gtk_recent_chooser_menu_populate (GtkRecentChooserMenu *menu)
MenuPopulateData *pdata;
GtkRecentChooserMenuPrivate *priv = menu->priv;
- if (menu->priv->populate_id)
+ if (priv->populate_id)
return;
- pdata = g_slice_new (MenuPopulateData);
- pdata->items = NULL;
- pdata->n_items = 0;
- pdata->loaded_items = 0;
- pdata->displayed_items = 0;
- pdata->menu = menu;
- pdata->placeholder = g_object_ref (priv->placeholder);
+ pdata = create_menu_populate_data (menu);
/* remove our menu items first */
gtk_recent_chooser_menu_dispose_items (menu);
-
+
priv->populate_id = gdk_threads_add_idle_full (G_PRIORITY_HIGH_IDLE + 30,
idle_populate_func,
pdata,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]