[goffice] GOLocaleSel: plug leak.
- From: Morten Welinder <mortenw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [goffice] GOLocaleSel: plug leak.
- Date: Tue, 22 Feb 2011 19:25:05 +0000 (UTC)
commit 946e8448915f965f395f9914aca3ff869e22f5d0
Author: Morten Welinder <terra gnome org>
Date: Tue Feb 22 14:24:19 2011 -0500
GOLocaleSel: plug leak.
ChangeLog | 4 ++++
goffice/gtk/go-locale-sel.c | 30 +++++++++++++++---------------
2 files changed, 19 insertions(+), 15 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 87d1b41..f9e0a53 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-02-22 Morten Welinder <terra gnome org>
+
+ * goffice/gtk/go-locale-sel.c (ls_build_menu): Plug leak.
+
2011-02-18 Morten Welinder <terra gnome org>
* goffice/gtk/go-format-sel.c (nfs_init): Plug leaks.
diff --git a/goffice/gtk/go-locale-sel.c b/goffice/gtk/go-locale-sel.c
index 35d3720..f989a49 100644
--- a/goffice/gtk/go-locale-sel.c
+++ b/goffice/gtk/go-locale-sel.c
@@ -425,12 +425,9 @@ ls_build_menu (GOLocaleSel *ls)
while (lgroup->group_name) {
LocaleInfo const *locale_trans;
- GtkMenu *submenu;
+ GtkMenu *submenu = NULL;
gint cnt = 0;
- item = gtk_menu_item_new_with_label (_(lgroup->group_name));
-
- submenu = GTK_MENU (gtk_menu_new ());
locale_trans = locale_trans_array;
while (locale_trans->lgroup != LG_LAST) {
@@ -438,22 +435,25 @@ ls_build_menu (GOLocaleSel *ls)
GtkWidget *subitem=
gtk_check_menu_item_new_with_label
(_(locale_trans->locale_title));
- gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (subitem), TRUE);
- gtk_widget_show (subitem);
- gtk_menu_shell_append (GTK_MENU_SHELL (submenu), subitem);
- g_object_set_data (G_OBJECT (subitem), LOCALE_NAME_KEY,
- (locale_trans->actual_locale));
- cnt++;
+ if (!submenu)
+ submenu = GTK_MENU (gtk_menu_new ());
+
+ gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (subitem), TRUE);
+ gtk_widget_show (subitem);
+ gtk_menu_shell_append (GTK_MENU_SHELL (submenu), subitem);
+ g_object_set_data (G_OBJECT (subitem), LOCALE_NAME_KEY,
+ (locale_trans->actual_locale));
+ cnt++;
}
locale_trans++;
}
- if (cnt > 0) {
- gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), GTK_WIDGET (submenu));
+ if (submenu) {
+ GtkWidget *item = gtk_menu_item_new_with_label (_(lgroup->group_name));
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (item),
+ GTK_WIDGET (submenu));
gtk_widget_show (item);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
lg_cnt++;
- } else {
- g_object_unref (item);
}
lgroup++;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]