From f6a6e8cfee89492f4f94f9382d02831b140fffbc Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 16 Mar 2012 14:12:16 -0500 Subject: plug two leaked strings in keybinding_changed() --- src/device-menu-mgr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/device-menu-mgr.c b/src/device-menu-mgr.c index cfdb55d..d081937 100644 --- a/src/device-menu-mgr.c +++ b/src/device-menu-mgr.c @@ -166,11 +166,12 @@ keybinding_changed (GSettings *settings, } if (g_strcmp0 (key, KEY_LOCK_SCREEN) == 0) { - g_debug("Keybinding changed to: %s", g_settings_get_string(settings, key)); + gchar * val = g_settings_get_string(settings, key); + g_debug("Keybinding changed to: %s", val); if (lock_menuitem != NULL) { - dbusmenu_menuitem_property_set_shortcut_string (lock_menuitem, - g_settings_get_string(settings, key)); + dbusmenu_menuitem_property_set_shortcut_string (lock_menuitem, val); } + g_free (val); } return; } -- cgit v1.2.3 From 537804ecacb2732a6e86a4234f7173cd54f3b095 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 16 Mar 2012 18:12:56 -0500 Subject: plug two more memory leaks. g_variant_get("s") makes a newly-allocated duplicated string, g_variant_get("&s") returns the internal const string. --- src/indicator-session.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/indicator-session.c b/src/indicator-session.c index 5d894e8..0051af1 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -428,7 +428,7 @@ user_real_name_get_cb (GObject * obj, GAsyncResult * res, gpointer user_data) } const gchar* username = NULL; - g_variant_get (result, "(s)", &username); + g_variant_get (result, "(&s)", &username); indicator_session_update_users_label (self, username); return; } @@ -481,7 +481,7 @@ receive_signal (GDBusProxy * proxy, if (g_strcmp0(signal_name, "UserRealNameUpdated") == 0) { const gchar* username = NULL; - g_variant_get (parameters, "(s)", &username); + g_variant_get (parameters, "(&s)", &username); indicator_session_update_users_label (self, username); } else if (g_strcmp0(signal_name, "UserMenuIsVisible") == 0) { -- cgit v1.2.3 From ddd26808cecb8050db7438ee59b3bab3f6ba4612 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 16 Mar 2012 19:24:04 -0500 Subject: fix memory leak updating the username label -- gtk_label_set_text() takes a const char*, we don't need to g_strdup() the string before passing it in --- src/indicator-session.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/indicator-session.c b/src/indicator-session.c index 0051af1..c6f4d9c 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -713,14 +713,8 @@ indicator_session_update_users_label (IndicatorSession* self, } GSettings* settings = g_settings_new ("com.canonical.indicator.session"); - gboolean use_name = g_settings_get_boolean (settings, - "show-real-name-on-panel"); + const gboolean use_name = g_settings_get_boolean (settings, "show-real-name-on-panel"); + gtk_label_set_text (self->users.label, name); + gtk_widget_set_visible (GTK_WIDGET(self->users.label), use_name); g_object_unref (settings); - gtk_label_set_text (self->users.label, g_strdup(name)); - if (use_name){ - gtk_widget_show(GTK_WIDGET(self->users.label)); - } - else{ - gtk_widget_hide(GTK_WIDGET(self->users.label)); - } } -- cgit v1.2.3