[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