Skip to content

Commit 9628efb

Browse files
committed
panel-gtk: Fix memory leaks
'g_strconcat' needs to be freed
1 parent 76d6eff commit 9628efb

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

mate-panel/libpanel-util/panel-gtk.c

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ GtkWidget *
183183
panel_image_menu_item_new_from_icon (const gchar *icon_name,
184184
const gchar *label_name)
185185
{
186+
gchar *concat;
186187
GtkWidget *icon;
187188
GtkStyleContext *context;
188189
GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
@@ -193,7 +194,8 @@ panel_image_menu_item_new_from_icon (const gchar *icon_name,
193194
else
194195
icon = gtk_image_new ();
195196

196-
GtkWidget *label_menu = gtk_label_new_with_mnemonic (g_strconcat (label_name, " ", NULL));
197+
concat = g_strconcat (label_name, " ", NULL);
198+
GtkWidget *label_menu = gtk_label_new_with_mnemonic (concat);
197199
GtkWidget *menuitem = gtk_menu_item_new ();
198200

199201
context = gtk_widget_get_style_context (GTK_WIDGET(icon_box));
@@ -210,13 +212,16 @@ panel_image_menu_item_new_from_icon (const gchar *icon_name,
210212
g_settings_bind (icon_settings, "menus-have-icons", icon, "visible",
211213
G_SETTINGS_BIND_GET);
212214

215+
g_free (concat);
216+
213217
return menuitem;
214218
}
215219

216220
GtkWidget *
217221
panel_image_menu_item_new_from_gicon (GIcon *gicon,
218222
const gchar *label_name)
219223
{
224+
gchar *concat;
220225
GtkWidget *icon;
221226
GtkStyleContext *context;
222227
GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
@@ -227,7 +232,8 @@ panel_image_menu_item_new_from_gicon (GIcon *gicon,
227232
else
228233
icon = gtk_image_new ();
229234

230-
GtkWidget *label_menu = gtk_label_new_with_mnemonic (g_strconcat (label_name, " ", NULL));
235+
concat = g_strconcat (label_name, " ", NULL);
236+
GtkWidget *label_menu = gtk_label_new_with_mnemonic (concat);
231237
GtkWidget *menuitem = gtk_menu_item_new ();
232238

233239
context = gtk_widget_get_style_context (GTK_WIDGET(icon_box));
@@ -244,6 +250,8 @@ panel_image_menu_item_new_from_gicon (GIcon *gicon,
244250
g_settings_bind (icon_settings, "menus-have-icons", icon, "visible",
245251
G_SETTINGS_BIND_GET);
246252

253+
g_free (concat);
254+
247255
return menuitem;
248256
}
249257

@@ -253,9 +261,9 @@ panel_check_menu_item_new (GtkWidget *widget_check)
253261
GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
254262
GtkWidget *menuitem = gtk_menu_item_new ();
255263
GtkWidget *label_name = gtk_bin_get_child (GTK_BIN (widget_check));
264+
gchar *concat = g_strconcat (gtk_label_get_label (GTK_LABEL (label_name)), " ", NULL);
256265

257-
gtk_label_set_text_with_mnemonic (GTK_LABEL (label_name),
258-
g_strconcat (gtk_label_get_label (GTK_LABEL (label_name)), " ", NULL));
266+
gtk_label_set_text_with_mnemonic (GTK_LABEL (label_name), concat);
259267

260268
gtk_widget_set_margin_start (widget_check, 2);
261269
gtk_widget_set_margin_start (gtk_bin_get_child (GTK_BIN (widget_check)), 11);
@@ -266,5 +274,7 @@ panel_check_menu_item_new (GtkWidget *widget_check)
266274

267275
gtk_label_set_mnemonic_widget (GTK_LABEL (label_name), menuitem);
268276

277+
g_free (concat);
278+
269279
return menuitem;
270280
}

0 commit comments

Comments
 (0)