[mate-panel] add mate-panel_memory-leak.patch

Wolfgang Ulbrich raveit65 at fedoraproject.org
Sat Feb 22 11:35:03 UTC 2014


commit cdd402679c446539de96b1240a5297ebe18d8bae
Author: raveit65 <chat-to-me at raveit.de>
Date:   Sat Feb 22 12:35:42 2014 +0100

    add mate-panel_memory-leak.patch

 mate-panel_memory-leak.patch |  140 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 140 insertions(+), 0 deletions(-)
---
diff --git a/mate-panel_memory-leak.patch b/mate-panel_memory-leak.patch
new file mode 100644
index 0000000..0492f10
--- /dev/null
+++ b/mate-panel_memory-leak.patch
@@ -0,0 +1,140 @@
+diff --git a/mate-panel/drawer.c b/mate-panel/drawer.c
+index 6961343..2b8f481 100644
+--- a/mate-panel/drawer.c
++++ b/mate-panel/drawer.c
+@@ -304,6 +304,7 @@
+ 		      const char *tooltip)
+ {
+ 	g_return_if_fail (drawer != NULL);
++	g_return_if_fail (drawer->toplevel != NULL);
+ 	g_return_if_fail (tooltip != NULL);
+ 
+ 	if (tooltip && !tooltip [0])
+@@ -438,7 +439,7 @@
+ 				  gchar     *key,
+ 				  Drawer    *drawer)
+ {
+-	const char *custom_icon;
++	char *custom_icon;
+ 	custom_icon = g_settings_get_string (settings, key);
+ 
+ 	if (custom_icon && custom_icon [0]) {
+@@ -447,6 +448,8 @@
+ 		if (use_custom_icon)
+ 			button_widget_set_icon_name (BUTTON_WIDGET (drawer->button), custom_icon);
+ 	}
++
++	g_free (custom_icon);
+ }
+ 
+ static void
+@@ -454,8 +457,9 @@
+ 			      gchar     *key,
+ 			      Drawer      *drawer)
+ {
+-	set_tooltip_and_name (drawer,
+-			      g_settings_get_string (settings, key));
++	gchar *tooltip = g_settings_get_string (settings, key);
++	set_tooltip_and_name (drawer, tooltip);
++	g_free (tooltip);
+ }
+ 
+ static void
+diff --git a/mate-panel/panel-addto.c b/mate-panel/panel-addto.c
+index 12f30dc..6535ba3 100644
+--- a/mate-panel/panel-addto.c
++++ b/mate-panel/panel-addto.c
+@@ -1036,7 +1036,9 @@ static void panel_addto_make_application_model(PanelAddtoDialog* dialog)
+ 			 gchar            *key,
+ 			 PanelAddtoDialog *dialog)
+ {
+-	panel_addto_name_change (dialog, g_settings_get_string (settings, key));
++	gchar *name = g_settings_get_string (settings, key);
++	panel_addto_name_change (dialog, name);
++	g_free (name);
+ }
+ 
+ static gboolean
+diff --git a/mate-panel/panel-bindings.c b/mate-panel/panel-bindings.c
+index a5c2530..65f0b7e 100644
+--- a/mate-panel/panel-bindings.c
++++ b/mate-panel/panel-bindings.c
+@@ -132,7 +132,9 @@
+ 	binding->keyval    = 0;
+ 	binding->modifiers = 0;
+ 
+-	panel_binding_set_from_string (binding, g_settings_get_string (settings, key));
++	gchar *value = g_settings_get_string (settings, key);
++	panel_binding_set_from_string (binding, value);
++	g_free (value);
+ 
+ 	if (!binding->keyval)
+ 		return;
+@@ -177,7 +179,9 @@
+ 									   gchar *key,
+ 									   gpointer user_data)
+ {
+-	panel_bindings_mouse_modifier_set_from_string (g_settings_get_string (settings, key));
++	gchar *value = g_settings_get_string (settings, key);
++	panel_bindings_mouse_modifier_set_from_string (value);
++	g_free (value);
+ }
+ 
+ static void
+diff --git a/mate-panel/panel-menu-button.c b/mate-panel/panel-menu-button.c
+index 7976ae6..4b2c840 100644
+--- a/mate-panel/panel-menu-button.c
++++ b/mate-panel/panel-menu-button.c
+@@ -584,14 +584,17 @@ struct _PanelMenuButtonPrivate {
+ 									PanelMenuButton *button)
+ {
+ 	if (!strcmp (key, PANEL_OBJECT_MENU_PATH_KEY)) {
+-		panel_menu_button_set_menu_path (button,
+-							 g_settings_get_string (settings, key));
++		gchar *value = g_settings_get_string (settings, key);
++		panel_menu_button_set_menu_path (button, value);
++		g_free (value);
+ 	} else if (!strcmp (key, PANEL_OBJECT_CUSTOM_ICON_KEY)) {
+-		panel_menu_button_set_custom_icon (button,
+-							 g_settings_get_string (settings, key));
++		gchar *value = g_settings_get_string (settings, key);
++		panel_menu_button_set_custom_icon (button, value);
++		g_free (value);
+ 	} else if (!strcmp (key, PANEL_OBJECT_TOOLTIP_KEY)) {
+-		panel_menu_button_set_tooltip (button,
+-							 g_settings_get_string (settings, key));
++		gchar *value = g_settings_get_string (settings, key);
++		panel_menu_button_set_tooltip (button, value);
++		g_free (value);
+ 	} else if (!strcmp (key, PANEL_OBJECT_USE_MENU_PATH_KEY)) {
+ 		panel_menu_button_set_use_menu_path (button,
+ 							 g_settings_get_boolean (settings, key));
+diff --git a/mate-panel/panel-profile.c b/mate-panel/panel-profile.c
+index b5504a7..f6299af 100644
+--- a/mate-panel/panel-profile.c
++++ b/mate-panel/panel-profile.c
+@@ -784,8 +784,9 @@
+ 
+ #define UPDATE_STRING(k, n)                                                     \
+ 		if (!strcmp (key, k)) {                                                 \
+-			panel_toplevel_set_##n (toplevel,                                   \
+-									g_settings_get_string (settings, key));     \
++			gchar *value = g_settings_get_string (settings, key);               \
++			panel_toplevel_set_##n (toplevel, value);                           \
++			g_free (value);                                                     \
+ 		}
+ 
+ #define UPDATE_ENUM(k, n)                                                       \
+@@ -915,8 +916,9 @@
+ 		panel_background_set_opacity (background,
+ 					      g_settings_get_int (settings, key));
+ 	} else if (!strcmp (key, "image")) {
+-		panel_background_set_image (background,
+-					    g_settings_get_string (settings, key));
++		gchar *value = g_settings_get_string (settings, key);
++		panel_background_set_image (background, value);
++		g_free (value);
+ 	} else if (!strcmp (key, "fit")) {
+ 		panel_background_set_fit (background,
+ 					  g_settings_get_boolean (settings, key));
+


More information about the scm-commits mailing list